Dans cette regexp :je ne comprends pas le (.*?) Peut-on me l'expliquer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part #<prenom|nom>(.*?)</1>#
Dans cette regexp :je ne comprends pas le (.*?) Peut-on me l'expliquer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part #<prenom|nom>(.*?)</1>#
Ben franchement j'ai beau utiliser les regexp je vois pas là: * veut dire que le caractère apparait de 0 à n fois...le ? signifie que le caractère apparait 0 ou une fois... donc:
.* => n'importe quel caractère de 0 à n fois
.*? => (n'importe quel caractère de 0 à n fois) le tout de 0 à 1 fois????
tu la sors d'où ton expression régulière???
Salut,
Le motif correct serait plutôt
%<(prenom|nom)>(.*?)</\1>%
Il faut utiliser une parenthèse capturante pour mémoriser le nom de la balise ouvrante et pouvoir l'utiliser plus loin grace à la réference arrière.
< ( # 1ère Parenthèse capturante prenom|nom # prenom OU nom ) > ( # 2ème Parenthèse capturante . # N'importe quel caractère * # 0, 1 une plusieurs fois ? # Empecher le moteur d'être trop gourmand # Ici, il s'agit de s'arrêter à la premiere #balise fermante rencontrée (voir plus bas) ) </ \1 # Référence arrière # Correspond à ce qui été capturé par la première parenthèse (prenom ou nom) >
Merci de m'avoir répondu ; je ne vois les réponses que ce matin. Pour répondre à PtiteA2, cette regexp sort d'un bouquin ("PHP 5.3 Développez un site Web dynamique et interactif"- Olivier Heurtel).
Pour Eric2A, ta regexp est :tu as visiblement oublié de refermer la première parenthèse ; on le fait où ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part <(prenom|nom>(.*?)<\1>
L'erreur (corrigée) se trouvait dans l'explication du motif décortiqué. C'était plus simple pour toi de copier/coller la regex correcte présentée sur une ligne...Envoyé par laurentSc
Envoyé par Eric2a
Oui, t'as raison ; j'avais pas vu les parenthèses et ai pensé que tu avais recopié ma regexp !
merci stealth35je suis parti du principe qu'elle est la même. merciAttention la lib .NET n'est pas la même que PHP qui est basé sur PCRE
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager