PCRE Pattern Syntax

Ceci est un résumé rapide des références aux formules les plus courantes que vous pouvez utiliser dans les expressions régulières PCRE. La plus utilisée est ".*", qui signifie, pour l’interpréteur de commande, n’importe quel nombre de n’importe quel caractère. C’est équivalent au joker "*" dans le shell.

QUOTING – pour empêcher qu’un caractère soit interprété comme un model de méta-caractère “quotez” le.
  • \x où x n’est pas alphabétique, indique un littéral.
  • \Q...\E traiter les caractères inclus comme littéraux.

CARACTERES – Comment spécifier des caractères non imprimables ou de programmation.
  • \a alarme, c.a.d. le caractère BEL (hex 07)
  • \cx "control-x", où x est n’importe quel caractère
  • \e escape (hex 1B)
  • \f chargement de feuille (hex 0C)
  • \n nouvelle ligne (hex 0A)
  • \r retour chariot (hex 0D)
  • \t tabulation (hex 09)
  • \ddd caractère de code octal ddd, ou référence arrière
  • \xhh caractère de code hexadécimal hh
  • \x{hhh..} caractère de code hexadécimal hhh..

TYPES DE CARACTERE – Concordance basée sur le type de caractère.
  • . n’importe quel caractère excepté nouvelle ligne ;
                    en mode “dotall”, n’importe quel caractère quel qu’il soit
    
  • \C un octet, même dans le mode UTF-8 (à éviter)
  • \d un chiffre décimal
  • \D un caractère qui n’est pas un chiffre décimal
  • \h un blanc horizontal (ex: espace, tabulation, mais pas nouvelle ligne)
  • \H un caractère qui n’est pas un blanc horizontal
  • \p{xx} un caractère avec la propriété xx (voir plus bas)
  • \P{xx} un caractère sans la propriété xx (voir plus bas)
  • \R une séquence nouvelle ligne
  • \s un blanc
  • \S un caractère qui n’est pas un blanc
  • \v un blanc vertical (ex : nouvelle ligne ou CR)
  • \V un caractère qui n’est pas un blanc vertical
  • \w un caractère "word"
  • \W un caractère "non-word"
  • \X une séquence Unicode étendu

   En PCRE, \\d, \\D, \\s, \\S, \\w, and \\W ne reconnaissent que les caractères ASCII.

CODES DE LA CATEGORIE PROPRIETE GENERALE à utiliser avec p et P
  • C Autre
  • Cc Contrôle
  • Cf Format
  • Cn Non assigné
  • Co Usage privé
  • Cs Substitue

  • L Lettre
  • Ll Lettre minuscule
  • Lm Modifier la lettre
  • Lo Autre lettre
  • Lt Lettre de titre
  • Lu Lettre majuscule
  • L& Ll, Lu, ou Lt

  • M Marque
  • Mc Marque d’espacement
  • Me Marque d’inclusion
  • Mn Marque de non espacement

  • N Nombre
  • Nd Nombre décimal
  • Nl Nombre littéral
  • No Autre nombre

  • P Ponctuation
  • Pc Connecteur de ponctuation
  • Pd Tiret de ponctuation
  • Pe Ferme la ponctuation
  • Pf Ponctuation finale
  • Pi Ponctuation initiale
  • Po Autre ponctuation
  • Ps Ouvre la ponctuation

  • S Symbole
  • Sc Symbole monétaire
  • Sk Symbole modificateur
  • Sm Symbole mathématique
  • So Autre symbole

  • Z Separator
  • Zl Séparateur de Line
  • Zp Séparateur de paragraphe
  • Zs Séparateur espace

CLASSES CARACTERE - Concordance sur une plage ou un jeu de caractères. Par exemple , "[abc]" concordance pour a, b ou c.
  • [...] classe caractère positif
  • [^...] caractère négatif
  • [x-y] plage (peut être utilisé pour les caractères hexa)
  • [[:xxx:]] jeu positif POSIX nommé
  • [[:^xxx:]] jeu négatif POSIX nommé

Jeux de caractères POSIX nommés pour utilisation dans les classes de caractères :
  • alnum alphanumérique
  • alpha alphabétique
  • ASCII 0-127
  • blank espace ou tab
  • cntrl caractère de contrôle
  • digit chiffre décimal
  • graph impression, à l’exclusion des espaces
  • lower lettre minuscule
  • print impression, espaces inclus
  • punct impression, alphanumériques exclus
  • space blanc
  • upper lettre majuscule
  • word même que w
  • xdigit chiffre hexadécimal

   Dans PCRE, les noms des jeux de caractères POSIX n’admettent que des caractères ASCII. Vous pouvez utiliser Q...E à l’intérieur d’une classe de caractères.

QUANTIFICATEURS – A utiliser pour forcer les expressions régulières à limiter les concordances au plus possible ou au moins possible. Par exemple, étant donnée la chaîne "The quick brown fox slyly jumped over the lazy dog", le motif "T.*e" renverra "The quick brown fox slyly jumped over the", alors que "T.*?e" ne renverra que "The".Les concordances possessives sont comme les concordances gourmandes, excepté qu’elles analysent tout de la même manière jusqu’au bout de la chaîne, et s’il y en a plus après le motif, cette partie sera non satisfaisante et l’analyse échouera. "T.*+e" ne concordera pas du tout pour la chaîne ci-dessus.
  • ? 0 ou 1, gourmand
  • ?+ 0 ou 1, possessif
  • ?? 0 ou 1, paresseux
  • * 0 ou plus, gourmand
  • *+ 0 ou plus, possessif
  • *? 0 ou plus, paresseux
  • + 1 ou plus, gourmand
  • ++ 1 ou plus, possessif
  • +? 1 ou plus, paresseux
  • {n} exactement n
  • {n,m} au moins n, pas plus que m, gourmand
  • {n,m}+ au moins n, pas plus que m, possessif
  • {n,m}? au moins n, pas plus que m, paresseux
  • {n,} n ou plus, gourmand
  • {n,}+ n ou plus, possessif
  • {n,}? n ou plus, paresseux

ANCRAGES et ASSERTIONS SIMPLES – Concordance basée sur la position dans la chaîne.
  • \b limite de mot
  • \B n’est pas une limite de mot
  • ^ début de sujet
     également après un saut de ligne interne en mode multi ligne
    
  • \A début de sujet
  • $ fin de sujet
     également avant saut de ligne en fin de sujet
     également avant saut de ligne interne en mode multi ligne
    
  • \Z fin de sujet
                        également avant saut de ligne en fin de sujet
    
  • \z fin de sujet
  • \G position de la première de concordance dans le sujet

ALTERNATIVE – Concordance pour n’importe laquelle de plusieurs expressions possibles.
  • expr|expr|expr...

CAPTURE - Retourne des concordances partielles.
  • (...) capture d’un groupe
  • (?...) capture d’un groupe nommée (Perl)
  • (?'name'...) capture d’un groupe nommée (Perl)
  • (?P...) capture d’un groupe nommée (Python)
  • (?:...) non- capture de groupe
  • (?|...) non- capture de groupe ;
             réinitialisation des numéros de groupe pour les captures de groupes dans chaque alternative
    

COMMENTAIRE – Vous ne devriez pas en avoir besoin dans Gambas mais peut être êtes vous en train d’écrire des expressions régulières utilisables dans différents langages.
  • (?#....) commentaire (pas d’imbrication)

REGLAGE DES OPTIONS – Pour rendre votre code plus lisible vous pouvez utiliser les constantes trouvées dans la classe RegExp comme arguments des méthodes de compilation ou d’exécution, mais si vous générez des expressions régulières en run time , celles-ci peuvent être utiles.
  • (?i) indépendant de la casse
  • (?J) autorise la duplication des noms
  • (?m) multi ligne
  • (?s) ligne simple (dotall)
  • (?U) non gourmand par défaut (paresseux)
  • (?x) étendu (ignore les blancs)
  • (?-...) désactive l’option(s)

REFERENCES ARRIERE – Se réfère aux sous concordances antérieures dans la recherche en cours.
  • n référence par nombre (peut être ambigüe)
  • gn référence par nombre
  • g{n} référence par nombre
  • g{-n} référence relative par nombre

Pour des informations plus détaillées sur la librairie, voir http://www.regular-expressions.info/pcre.html ou http://www.pcre.org. La référence rapide ci-dessus a été adaptée de la page de manuel "pcresyntax" .