Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/02/2007, 10h48   #1
Membre chevronné
 
Inscription : janvier 2006
Messages : 918
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 918
Points : 735
Points : 735
Par défaut Question de théorie

Bonjour

J'ai une question toute théorique sur les PCRE :

Imaginons que j'ai la chaîne (sans les quotes)
'{{template{blabla}}}'
et le pattern
$patterns = "#{{.*}}#U";

Va-t-il détecter
'{{template{blabla}}}' (sans la dernière accolade)
ou
'{{template{blabla}}}'

et surtout, pourquoi ?

Merci d'avance
guidav est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2007, 10h58   #2
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Je dirais que la dernière accolade n'est pas prise.

Pourquoi ? Je vais citer php.net :

Citation:
U (PCRE_UNGREEDY)
Cette option inverse la tendance à la gourmandise des expressions rationnelles. Vous pouvez aussi inverser cette tendance au coup par coup avec un ?. De même, si cette option est activée, le ? rendra gourmand une séquence. Cette option n'est pas compatible avec Perl. Elle peut aussi être mise dans le masque avec l'option ?U dans le pattern ou par un point d'interrogation avant le quantifieur (.e.g. .*?).
Et j'ajouterais mes goûts personnels : les fonctions "preg" utilisent les regexp Perl. Alors autant le faire dans les règles de l'art : je n'utilise jamais U et je préfère le modificateur "?" de Perl (j'utilise aussi pas mal ce langage).
Je suis fainéant et vieux : ça m'évite de retenir 36000 syntaxes...
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h00.


 
 
 
 
Partenaires

Hébergement Web