Bonjour,
Pourriez-vous, svp, m'expliquer les différences entre ces trois expressions:
(?<!\d)
/(?<=[lmn])
(?!\d)
Merci
Cordialement
Bonjour,
Pourriez-vous, svp, m'expliquer les différences entre ces trois expressions:
(?<!\d)
/(?<=[lmn])
(?!\d)
Merci
Cordialement
Certification des Talents de la programmation In Memory Statistics sur HADOOP:
http://talents-imstat.groupe-avisia....avance?uid=162
Je ne sais pas s'il est pertinent de parler de différence dans la mesure où ces expressions n'ont rien en commun, je vais néanmoins détailler le sens:
- (?<!\d): "La position courante ne doit pas être précédée d'un chiffre." (?<!...) est un test arrière négatif (negative lookbehind) qui signifie "non précédé de" et \d est un classe de caractères pour les chiffres.
- /(?<=[lmn]): Cette expression est quasiment dénuée de sens car elle décrit: un slash puis à la position suivante (donc après le slash) l'assertion "la position courante doit être précédée par une des lettres l, m ou n". Cette pattern échouera donc toujours puisque un slash ne peut pas être à la fois une de ces lettres. (?<=...) est un test arrière (lookbehind) qui signifie "précédé de".
- (?!\d): "La position courante ne doit pas être suivie par un chiffre." (?!...) est un test avant négatif (negative lookahead) et signifie "suivi de".
Tous les tests qu'ils soient avants, arrières, négatifs ou pas, ne consomment pas de caractères, ce sont de simples assertions.
Tu trouveras des informations plus complètes en consultant cette page ou en tapant perldoc perlre dans un terminal.
Brachygobius xanthozonus
Ctenobrycon Gymnocorymbus
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