|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : mars 2006 Messages : 66 ![]() |
Bonjour à tous,
Voici la question que je me pose : comment matcher une balise html ne contenant pas un attribut ? Exemple : Je ne veux pas matcher : <textarea required="true" /> Mais matcher : <textarea /> ou <textarea cols="50" /> etc. Pour tout matcher, je fais : <textarea[^>]*/> Mais comment faire pour spécifier que je ne veux pas que le pattern matché contienne le pattern required Merci d'avance |
|
|
00
|
|
|
#2 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Avec une assertion négative avant ?
|
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : mars 2006 Messages : 66 ![]() |
Je n'ai pas trouvé comment faire avec les assertions négatives.
Voilà ce que j'ai essayé dans un premier temps (toujours avec le même exemple que dans mon premier message) : <textarea[^>]*(?<!required="true") /> Nickel! Ca marche avec mon exemple. Mais ça marche car required="true" se trouve à la fin du tag. Prenons les lignes suivantes pour compliquer un peu :<textarea rows="20" required="true" cols="50" /> (où je veux matcher des textarea Dans ce cas mon pattern ne convient plus (puisqu'il y a des caractères après le required="true"). Donc j'adapte : <textarea[^>]*(?<!required="true")[^>]*/> Mais là évidemment ça ne marche pas : ça matche <textarea rows="20" required="true" cols="50" /> alors que je ne veux pas. Ca me paraît logique car il semble difficile d'utiliser des assertions négatives sans les faire précéder ou suivre d'une chaîne de caractère "fixe". En l'occurence, si je prend la ligne <textarea rows="20" required="true" cols="50" />, alors le premier pattern [^>]* peut être identifié comme rows et avec le deuxième pattern [^>]* identifier ="20" required="true" cols="50" . Et ainsi on a bien le deuxième [^>]* qui n'est pas précédé par required="true". Du coup, ça matche la chaîne alors que je veux pas Quelqu'un a une idée ?? |
|
|
00
|
|
|
#4 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
J'ai fait l'essai rapidement avec :
Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : mars 2006 Messages : 66 ![]() |
Un énorme merci !
Ca marche impec !! Il ne me reste plus qu'à me pencher sur ce pattern pour le comprendre en détail. Bonne journée et merci encore ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com