Il s'agit de la commande perlreref qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
perlreref - Référence des expressions régulières Perl
DESCRIPTION
Ceci est une référence rapide aux expressions régulières de Perl. Pour plus d'informations voir perlre
et perlop, ainsi que la section "VOIR AUSSI" de ce document.
LES OPÉRATEURS
"=~" détermine à quelle variable l'expression régulière est appliquée. En son absence, $_ est utilisé.
$var =~ /foo/;
"!~" détermine à quelle variable l'expression régulière est appliquée et annule le résultat de la
rencontre; elle renvoie false si la correspondance réussit et true si elle échoue.
$var !~ /foo/;
"m/pattern/msixpogcdualn" recherche dans une chaîne une correspondance de modèle, en appliquant le
options.
m Mode multiligne - ^ et $ correspondent aux lignes internes
s correspond à une seule ligne - . correspond \n
i insensible à la casse
x Lisibilité étendue - espaces et commentaires gratuits
p Conserver une copie de la chaîne correspondante -
${^PREMATCH}, ${^MATCH}, ${^POSTMATCH} seront définis.
o compiler le modèle une fois
g Global - toutes les occurrences
c ne réinitialise pas la position sur les correspondances échouées lors de l'utilisation de /g
une restriction \d, \s, \w et [:posix:] pour correspondre uniquement à l'ASCII
aa (deux a) également /i correspond exclure ASCII/non-ASCII
l correspond à la locale actuelle
vous correspondez selon les règles Unicode
d correspond aux règles natives à moins que quelque chose ne l'indique
Unicode
n Mode sans capture. Ne laissez pas () remplir $1, $2, etc...
Si 'motif' est une chaîne vide, le dernier réussir regex correspondant est utilisé. Délimiteurs
autre que '/' peut être utilisé à la fois pour cet opérateur et les suivants. Le "m" de tête
peut être omis si le délimiteur est '/'.
"qr/pattern/msixpodualn" vous permet de stocker une expression rationnelle dans une variable ou d'en faire circuler une.
Les modificateurs comme pour "m//", et sont stockés dans l'expression régulière.
"s/pattern/replacement/msixpogcedual" remplace les correspondances de 'pattern' par 'replacement'.
Modificateurs comme pour "m//", avec deux ajouts :
e Évaluer « remplacement » en tant qu'expression
r Renvoie la substitution et laisse la chaîne d'origine intacte.
'e' peut être spécifié plusieurs fois. 'remplacement' est interprété comme un guillemet double
chaîne sauf si un guillemet simple ("'") est le délimiteur.
"?modèle?" est comme "m/pattern/" mais ne correspond qu'une seule fois. Aucun autre délimiteur ne peut être
utilisé. Doit être réinitialisé avec réinitialiser().
SYNTAXE
\ Échappe le caractère qui le suit immédiatement
. Correspond à n'importe quel caractère à l'exception d'une nouvelle ligne (sauf si /s est
utilisé)
^ Correspond au début de la chaîne (ou de la ligne, si /m est utilisé)
$ Correspond à la fin de la chaîne (ou de la ligne, si /m est utilisé)
* Correspond à l'élément précédent 0 fois ou plus
+ Correspond à l'élément précédent 1 ou plusieurs fois
? Correspond à l'élément précédent 0 ou 1 fois
{...} Spécifie une plage d'occurrences pour l'élément qui le précède
[...] Correspond à l'un des caractères contenus entre parenthèses
(...) Regroupe les sous-expressions pour la capture à $1, $2...
(?:...) Regroupe les sous-expressions sans capture (cluster)
| Correspond à la sous-expression qui la précède ou la suit
\g1 ou \g{1}, \g2 ... Correspond au texte du Nième groupe
\1, \2, \3 ... Correspond au texte du Nième groupe
\g-1 ou \g{-1}, \g-2 ... Correspond au texte du Nième groupe précédent
\g{name} Backreference nommée
\k Référence arrière nommée
\k'name' Backreference nommée
(?P=name) Backreference nommée (syntaxe python)
ESCAPE SÉQUENCES
Ceux-ci fonctionnent comme dans les chaînes normales.
\a Alarme (bip)
\e Évasion
\ f Alimentation
\n Nouvelle ligne
\ r Retour chariot
\t Onglet
\037 Caractère dont l'ordinal est les 3 chiffres octaux, max \777
\o{2307} Caractère dont l'ordinal est le nombre octal, sans restriction
\x7f Caractère dont l'ordinal est les 2 chiffres hexadécimaux, max \xFF
\x{263a} Caractère dont l'ordinal est le nombre hexadécimal, sans restriction
\cx Contrôle-x
\N{nom} Un caractère Unicode nommé ou une séquence de caractères
\N{U+263D} Un caractère Unicode par ordinal hexadécimal
\l Caractère suivant en minuscule
\u Caractère suivant de la casse
\L Minuscule jusqu'à \E
\U Majuscules jusqu'à \E
\F Foldcase jusqu'à \E
\Q Désactive les métacaractères du modèle jusqu'à \E
\E Fin de la modification
Pour Titlecase, voir "Titlecase".
Celui-ci fonctionne différemment des chaînes normales :
\b Une assertion, pas un retour arrière, sauf dans une classe de caractères
PERSONNAGE HORAIRE
[amy] Faites correspondre 'a', 'm' ou 'y'
[fj] Le tiret spécifie la "plage"
[fj-] Le tiret s'est échappé ou au début ou à la fin signifie " tiret "
[^fj] Caret indique "correspond à n'importe quel caractère _sauf_ ceux-ci"
Les séquences suivantes (sauf "\N") fonctionnent à l'intérieur ou sans une classe de caractères. La première
six sont compatibles avec les paramètres régionaux, tous sont compatibles Unicode. Voir perllocale et perlunicode pour plus de détails.
\d Un chiffre
\DA non-chiffre
\w Un caractère de mot
\WA caractère non verbal
\s Un caractère d'espacement
\SA caractère non blanc
\h Un espace horizontal
\HA espace non horizontal
\NA sans saut de ligne (lorsqu'il n'est pas suivi de '{NAME}';;
non valide dans une classe de caractères ; équivalent à [^\n] ; c'est
Comme '.' sans modificateur /s)
\v Un espace vertical
\VA espace non vertical
\RA nouvelle ligne générique (?>\v|\x0D\x0A)
\C Correspond à un octet (avec Unicode, '.' correspond à un caractère)
(Déconseillé.)
\pP Correspond à la propriété P-named (Unicode)
\p{...} Correspond à la propriété Unicode avec un nom de plus de 1 caractère
\PP Correspondance non-P
\P{...} Correspond à l'absence de propriété Unicode avec un nom supérieur à 1 caractère
\X Match Unicode étendu graphème cluster
Classes de caractères POSIX et leurs équivalents Unicode et Perl :
ASCII- Complète-
barre oblique inverse de la gamme POSIX
[[:...:]] \p{...} \p{...} séquence Description
-------------------------------------------------- ---------------------
alnum PosixAlnum XPosixAlnum Alpha plus Chiffre
alpha PosixAlpha XPosixAlpha Caractères alphabétiques
ASCII ASCII N'importe quel caractère ASCII
vide PosixBlank XPosixBlank \h Espace horizontal ;
gamme complète également
écrit comme
\p{EspaceHoriz} (GNU
extension)
cntrl PosixCntrl XPosixCntrl Caractères de contrôle
chiffre PosixDigit XPosixDigit \d Chiffres décimaux
graphique PosixGraph XPosixGraph Alnum plus Punct
minuscules PosixLower XPosixLower Caractères minuscules
print PosixPrint XPosixPrint Graph plus Print, mais
pas de Cntrls
punct PosixPunct XPosixPunct Ponctuation et symboles
dans la gamme ASCII ; seulement
percer à l'extérieur
espace PosixSpace XPosixSpace [\s\cK]
PerlSpace XPerlSpace \s La définition des espaces blancs de Perl
majuscule PosixUpper XPosixUpper Caractères majuscules
mot PosixWord XPosixWord \w Alnum + Marques Unicode +
connecteurs, comme '_'
(extension Perl)
xdigit ASCII_Hex_Digit XPosixDigit Chiffre hexadécimal,
La plage ASCII est
[0-9A-Fa-f]
Aussi, divers synonymes comme "\p{Alpha}" pour "\p{XPosixAlpha}" ; tous répertoriés dans "Propriétés
accessible via \p{} et \P{}" dans perluniprops
Au sein d'une classe de caractères :
POSIX traditionnel Unicode
[:chiffre:] \d \p{chiffre}
[:^chiffre:] \D \P{chiffre}
ANCRAGES
Toutes sont des assertions de largeur zéro.
^ Match début de chaîne (ou ligne, si /m est utilisé)
$ Correspond à la fin de la chaîne (ou à la ligne, si /m est utilisé) ou avant la nouvelle ligne
\b{} Limite de correspondance du type spécifié entre les accolades
\B{} Correspond là où \b{} ne correspond pas
\b Correspondre à la limite des mots (entre \w et \W)
\B Correspondance sauf à la limite du mot (entre \w et \w ou \W et \W)
\A Début de la chaîne de correspondance (indépendamment de /m)
\Z Match string end (avant le saut de ligne optionnel)
\z Correspond à la fin de chaîne absolue
\G Correspond à l'endroit où m//g précédent s'est arrêté
\K Gardez le contenu à gauche du \K, ne l'incluez pas dans $&
QUANTIFIANTS
Les quantificateurs sont gourmands par défaut et correspondent aux le plus long le plus à gauche.
Portée maximale minimale possessive autorisée
------- ------- ---------- -------------
{n,m} {n,m} ? {n,m}+ Doit se produire au moins n fois
mais pas plus de m fois
{n,} {n,} ? {n,}+ Doit se produire au moins n fois
{n} {n} ? {n}+ Doit se produire exactement n fois
* *? *+ 0 fois ou plus (identique à {0,})
+ + ? ++ 1 fois ou plus (identique à {1,})
? ?? ?+ 0 ou 1 fois (identique à {0,1})
Les formes possessives (nouveau dans Perl 5.10) empêchent le retour en arrière : à quoi correspond un
modèle avec un quantificateur possessif ne sera pas remonté, même si cela provoque le
match entier à l'échec.
Il n'y a pas de quantificateur "{,n}". Cela est interprété comme une chaîne littérale.
ÉLARGI CONSTRUIT
(?#texte) Un commentaire
(?:...) Regroupe les sous-expressions sans capture (cluster)
(?pimsx-imsx:...) Activer/désactiver l'option (selon les modificateurs m//)
(?=...) Assertion d'anticipation positive de largeur zéro
(?!...) Assertion d'anticipation négative de largeur nulle
(?<=...) Assertion d'analyse positive de largeur zéro
(?
(?>...) Prenons ce que nous pouvons, interdisons le retour en arrière
(?|...) Réinitialisation de la branche
(? ...) Capture nommée
(?'nom'...) Capture nommée
(?P ...) Capture nommée (syntaxe python)
(?[...]) Classe de caractères entre crochets étendue
(?{ code }) Code intégré, la valeur de retour devient $^R
(??{ code }) regex dynamique, valeur de retour utilisée comme regex
(?N) Récursivité dans le sous-modèle numéro N
(?-N), (?+N) Récurse dans le Nième sous-modèle précédent/suivant
(?R), (?0) Récursive au début de tout le motif
(?&nom) Recursive dans un sous-modèle nommé
(?P>nom) Récurse dans un sous-modèle nommé (syntaxe python)
(?(cond)oui|non)
(?(cond)yes) Expression conditionnelle, où "cond" peut être :
(?=tapoter) anticipation
(?!pat) anticipation négative
(?<=tapoter) regarder derrière
(?
(N) le sous-modèle N correspond à quelque chose
( ) le sous-modèle nommé correspond à quelque chose
('nom') le sous-modèle nommé correspond à quelque chose
(?{code}) condition de code
(R) vrai si récurrent
(RN) vrai si récurrent dans le Nième sous-modèle
(R&name) vrai si récurrent dans le sous-modèle nommé
(DEFINE) toujours faux, pas de non-modèle autorisé
VARIABLES
$_ Variable par défaut à utiliser par les opérateurs
$` Tout avant la chaîne correspondante
$& Chaîne correspondante entière
$' Tout après la chaîne correspondante
${^PREMATCH} Tout avant la chaîne correspondante
${^MATCH} Chaîne correspondante entière
${^POSTMATCH} Tout après la chaîne correspondante
Remarque pour ceux qui utilisent encore Perl 5.18 ou une version antérieure : l'utilisation de "$`", $& ou "$'" ralentira
tous regex dans votre programme. Consultez perlvar pour "@-" pour voir les expressions équivalentes
cela ne provoquera pas de ralentissement. Voir aussi Devel::SawAmpersand. À partir de Perl 5.10, vous
peut également utiliser les variables équivalentes "${^PREMATCH}", "${^MATCH}" et "${^POSTMATCH}", mais
pour qu'ils soient définis, vous devez spécifier le modificateur "/p" (préserver) sur votre
expression. En Perl 5.20, l'utilisation de "$`", $& et "$'" ne fait aucune différence de vitesse.
$1, $2 ... contiennent la Xème expr capturée
$+ Dernière correspondance de motif entre parenthèses
$^N Contient la dernière capture fermée
$^R Contient le résultat de la dernière (?{...}) expr
@- Décalages de départs de groupes. $-[0] retient le début de tout le match
@+ Décalages des fins de groupes. $+[0] maintient la fin de tout le match
%+ groupes de capture nommés
%- Groupes de capture nommés, en tant que références de tableau
Les groupes capturés sont numérotés en fonction de leur ouverture parent.
FONCTIONS
lc Une chaîne en minuscule
lcfirst Premier caractère minuscule d'une chaîne
uc Une chaîne en majuscule
ucfirst Titlecase premier caractère d'une chaîne
fc Foldcase une chaîne
pos Retourne ou définit la position de correspondance actuelle
quotemeta Métacaractères de citation
réinitialiser Réinitialiser ?modèle? statut
étude Analyser la chaîne pour optimiser la correspondance
split Utiliser une expression rationnelle pour diviser une chaîne en plusieurs parties
Les cinq premiers d'entre eux sont comme les séquences d'échappement "\L", "\l", "\U", "\u" et "\F".
Pour la casse du titre, voir "Casse du titre" ; Pour Foldcase, voir "Foldcase".
TERMINOLOGIE
Casse-titre
Concept Unicode qui est le plus souvent égal à la majuscule, mais pour certains caractères comme
les "sharp s" allemands il y a une différence.
Étui pliable
Forme Unicode utile pour comparer des chaînes quelle que soit la casse, comme certains
les caractères ont des mappages de casse complexes un-à-plusieurs. Principalement une variante des minuscules.
Utilisez perlreref en ligne en utilisant les services onworks.net