-
Bonjour,
Je souhaite faire une regex pour detecter la presence d'une image...
En gros, si j'ai:
<img .....> alors c'est ok
si
<img ....></a> alors pas ok
Comment exclure une chaine de caractere d'une regex?
Voici mon expression reguliere (elle ne permet pas de distinguer les 2 cas):
Je sais que pour dire qu'une chaine ne contient pas une liste de caracteres, il faut faire:
(Cette chaine ne peut contenir ni a, ni b, ni c...)
Mais comment faire pour dire ne contient pas une chaine de caractere?
-
J'ai trouvé une piste...
Avec une assertion avant negative.
Par exemple:
Renverra true dans ce cas:
Et renverra false dans ce cas:
Car la regexp est suivi par abc
Mais ca ne marche pas si je fais ca:
Code:
\<IMG.*\>(?!\<\/a\>)
Pourquoi?
Une idée pour me débloquer?
-
- pourquoi <img ....></a> n'est pas bon ?
- tu ne dois pas utiliser .* (étoile gourmande), mais .*? (étoile paresseuse), sinon tu vas "avaler" plusieurs balises d'un coup
- quelle fonction utilises-tu ?