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
Partager