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


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
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