REGEX balises html

REGEX balises html - PHP - Programmation

Marsh Posté le 30-06-2008 à 14:38:49    

Bonjour,

 

voila j'ai un petit soucis, j'aimerai récupérer l'url contenue dans un lien, pour en gros traiter :

Code :
  1. <a href="toto.txt">coconuts</a>
  2. <a href='toto.txt'>coconuts</a>
  3. <a href=toto.txt>coconuts</a>


J'arrive à gérer (proprement ?) les simples et doubles cotes, mais je n'ai pas trouvé comment signifier l'absence de caractère entourant ma chaine.
Un soucis au niveau des [], où je ne sais pas quoi mettre.

 

J'utilise cette regex actuellement :

Code :
  1. '/<a.*?href=[\"|\'](.*?)[\"|\'].*?>/is'
 

Si vous avez une idée,

 

merci d'avance.


Message édité par $man le 30-06-2008 à 14:39:08
Reply

Marsh Posté le 30-06-2008 à 14:38:49   

Reply

Marsh Posté le 30-06-2008 à 15:53:54    

/<a.*?href=(["']?)(.*?)\1>/


Mais attention ça ne marchera pas si tu as des m#rdes genre:

<a href=toto.txt b=tata>coconuts</a>


Si c'est le cas je te conseillerais vraime,nt de le faire en plusieurs étapes, voir de pas utiliser des regexs pour ça!

Message cité 1 fois
Message édité par anapajari le 30-06-2008 à 15:54:02

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 30-06-2008 à 16:05:25    

Et vive l'XHTML où les quotes sont obligatoires [:dawa]

Reply

Marsh Posté le 30-06-2008 à 16:18:27    

anapajari a écrit :

voir de pas utiliser des regexs pour ça!


C'est même précisément la chose à pas faire :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 01-07-2008 à 14:54:37    

Salut,
 
bon j'ai réussi à me débrouiller tout seul, ca fonctionne correctement.
 

FlorentG a écrit :

Et vive l'XHTML où les quotes sont obligatoires [:dawa]


Je suis bien d'accord, hélas je parse des pages pas très propres  :(  
 

masklinn a écrit :


C'est même précisément la chose à pas faire :o


Avec DOM ?
 
Merci.

Reply

Marsh Posté le 01-07-2008 à 17:35:08    

Oui.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed