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.
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" .