[PHP] - Expression régulière
anelor
-
Farfadh -
Farfadh -
Bonjour,
Novice en expressions régulieres, j'aimerai savoir s'il est possible de récupérer une chaine dans ce cas précis :
<balisedébut>(.*)</balisefin>
j'aimerai que le terme COMPLET </balisefin> ne soit pas compris dans le résultat de ma demande, puisque mon code est de cette sorte
<balisedébut>blabla</balisefin><balisedébut></balisefin><balisedébut></balisefin>
Je me retrouve donc avec le résultat :
blabla</balisefin><balisedébut></balisefin><balisedébut>
et non juste le "blabla" attendu
merci de votre aide !
Novice en expressions régulieres, j'aimerai savoir s'il est possible de récupérer une chaine dans ce cas précis :
<balisedébut>(.*)</balisefin>
j'aimerai que le terme COMPLET </balisefin> ne soit pas compris dans le résultat de ma demande, puisque mon code est de cette sorte
<balisedébut>blabla</balisefin><balisedébut></balisefin><balisedébut></balisefin>
Je me retrouve donc avec le résultat :
blabla</balisefin><balisedébut></balisefin><balisedébut>
et non juste le "blabla" attendu
merci de votre aide !
A voir également:
- [PHP] - Expression régulière
- Easy php - Télécharger - Divers Web & Internet
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Microsoft expression encoder - Télécharger - Divers Utilitaires
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
3 réponses
Bonjour,
Je ne pense pas que tu puisses exclure toute une chaine.
Par contre, tu peux exclure toutes les balises comme ceci :
<balisedébut>([^<]*)</balisefin>
Mais cela ne fonctionnera pas si tu as des sous-balises, du genre
<balisedébut>truc<balise intérieure>chose</balise intérieure></balisefin>
Xavier
Je ne pense pas que tu puisses exclure toute une chaine.
Par contre, tu peux exclure toutes les balises comme ceci :
<balisedébut>([^<]*)</balisefin>
Mais cela ne fonctionnera pas si tu as des sous-balises, du genre
<balisedébut>truc<balise intérieure>chose</balise intérieure></balisefin>
Xavier
Je ne sais pas si en php on à le quantificateur ?
A savoir que le quantificateur * est gourmand et *? et moins gourmand
Voilà avec Perl
A savoir que le quantificateur * est gourmand et *? et moins gourmand
Voilà avec Perl
$ echo '<balisedébut>blabla</balisefin><balisedébut></balisefin><balisedébut></balisefin>' | perl -ne 'print "\$1 = $1\n" if /<balisedébut>(.*?)<\/balisefin>/' $1 = blabla
Je viens de tester avec PHP, le quantificateur *? ne fonctionne pas en expression régulière POSIX. Je vais tester en PCRE dès que je saurai comment faire.
Ce problème m'intéresse au plus haut point, j'ai fait un autre test de la façon suivante :
<balisedébut>(.*)<\/balisefin>((.*)<\/balisefin>)*
Mais cela ne fonctionne pas.
Si jamais quelqu'un parvenait à résoudre ce problème, faites-le moi savoir.
Ce problème m'intéresse au plus haut point, j'ai fait un autre test de la façon suivante :
<balisedébut>(.*)<\/balisefin>((.*)<\/balisefin>)*
Mais cela ne fonctionne pas.
Si jamais quelqu'un parvenait à résoudre ce problème, faites-le moi savoir.