Latest web development tutorials

expressions régulières Perl

Regex (expression régulière) décrit un ensemble de chaînes qui peuvent être utilisés pour vérifier si une chaîne contient une certaine chaîne correspondant à chaîne ne remplacer ou supprimer une condition correspond à une chaîne d'une chaîne et ainsi de suite.

Perl fonction regex de la langue est très puissant, essentiellement la langue commune la plus puissante, beaucoup de conception de langue support d'expression régulière quand ils sont des expressions régulières Perl référence.

Trois formes d'expressions régulières Perl sont appariés, le remplacement et la conversion:

  • Match: m / / (Également abrégé / / M Omis)

  • Remplacer: s / / /

  • Conversion: tr / / /

Ces trois formes et sont généralement= ~ ou! ~Avec l'utilisation = ~ représente match! ~ Ils ont dit qu'ils ne correspondent pas.


opérateur de match

Match opérateur m // utilisé pour faire correspondre une chaîne ou une déclaration d'expression régulière, par exemple, pour correspondre à la barre scalaire $ dans le "run", le code comme suit:

#!/usr/bin/perl

$bar = "I am w3big site. welcome to w3big site.";
if ($bar =~ /run/){
   print "第一次匹配\n";
}else{
   print "第一次不匹配\n";
}

$bar = "run";
if ($bar =~ /run/){
   print "第二次匹配\n";
}else{
   print "第二次不匹配\n";
}

Le programme ci-dessus, le résultat est:

第一次匹配
第二次匹配

Les modificateurs motif correspondant

Il y a un certain modèle commun modificateurs correspondant, comme suit:

Modificateurs description
Je Ignorer le mode de capitalisation
m Mode multi-ligne
o Seulement attribué une fois
s mode Single-line "." Match "\ n" (la valeur par défaut ne correspond pas)
x Ignorer le mode vierge
g mondial match
cg Après l'échec de correspondance globale, permet de trouver une chaîne correspondante à nouveau

les variables Regex

Perl existera après traitement pour correspondre à la valeur des trois nom de la variable spéciale:

  • La partie avant de lapartie chaîne correspondante: `$
  • $ &: String assorti
  • $ ': Pas un match pour les cordes restantes

Si ces trois variables ensemble, vous obtiendrez la chaîne d'origine.

Des exemples sont les suivants:

#!/usr/bin/perl

$string = "welcome to w3big site.";
$string =~ m/run/;
print "匹配前的字符串: $`\n";
print "匹配的字符串: $&\n";
print "匹配后的字符串: $'\n";

La sortie du programme ci-dessus est:

匹配前的字符串: welcome to 
匹配的字符串: run
匹配后的字符串: oob site.

des opérateurs de substitution

L'opérateur /// Remplacement opérateur est de faire correspondre l'expansion de l'utilisation de la nouvelle chaîne pour remplacer la chaîne spécifiée. Le format de base est la suivante:

s/PATTERN/REPLACEMENT/;

MOTIF pour correspondre au motif, REMPLACEMENT pour remplacer la chaîne.

Par exemple, "google" Nous allons remplacer la chaîne suivante est "w3big":

#!/usr/bin/perl

$string = "welcome to google site.";
$string =~ s/google/w3big/;

print "$string\n";

La sortie du programme ci-dessus est:

welcome to w3big site.

opération de remplacement modificateur

Remplacer le fonctionnement modificateur comme suit:

Modificateurs description
Je Si vous ajoutez «i» dans le modificateur, puis la sensibilité régulière de cas sera annulée, le «a» et «A» est le même.
m Le démarrage par défaut régulière "^" et à la fin "$" est juste pour une chaîne régulière si elle est couplée avec un "m" modificateur, le début et la fin de chaque ligne se référer à la chaîne: Au début de chaque ligne est "^", la fin est "$".
o L'expression est exécutée une seule fois.
s Si vous ajoutez «s» dans le modificateur, la valeur par défaut. »« Au nom de tout caractère sauf newline deviendra tout caractère, y compris newline est!
x Si vous ajoutez le modificateur, l'expression des caractères blancs seront ignorés, à moins qu'il ait été échappé.
g Remplacer toutes les chaînes correspondant.
e Comme une expression de chaîne de remplacement

Opérateurs de conversion

Ce qui suit est un opérateur de conversion modificateurs associés:

Modificateurs description
c Conversion de tous les caractères non spécifié
Supprimez tous les caractères spécifiés
s La même sortie rétrécie à une pluralité de caractères

Les exemples suivants l'$ string variable dans toutes les lettres minuscules converties en majuscules:

#!/usr/bin/perl 

$string = 'welcome to w3big site.';
$string =~ tr/a-z/A-z/;

print "$string\n";

La sortie du programme ci-dessus est:

WELCOME TO w3big SITE.

L'exemple suivant utilise la variable $ string de / répéter les caractères supprimés:

#!/usr/bin/perl

$string = 'w3big';
$string =~ tr/a-z/a-z/s;

print "$string\n";

La sortie du programme ci-dessus est:

runob

Autres exemples:

$string =~ tr/\d/ /c;     # 把所有非数字字符替换为空格
$string =~ tr/\t //d;     # 删除tab和空格
$string =~ tr/0-9/ /cs    # 把数字间的其它字符替换为一个空格。

Plus de règles d'expressions régulières

expression description
. Faites correspondre tous les caractères sauf newline
x? Match 0 ou une chaîne x
x * Match 0 fois ou plus x chaîne, mais le nombre minimum de correspondances possibles
x + Match 1 ou plusieurs fois x chaîne, mais le nombre minimum de correspondances possibles
*. Match 0 ou plusieurs fois tout caractère
. + Match 1 ou plusieurs fois par un caractère
{M} correspondent exactement à la chaîne spécifiée de m
{M, n} Matches m ou plus ou moins spécifiée chaîne n
{M} m Match ou une chaîne plus spécifiée
[] Quels correspond à un caractère à l'intérieur []
[^] Match ne répond pas aux personnages de []
[0-9] Faites correspondre tous les caractères numériques
[Az] Faites correspondre tous les caractères alphabétiques minuscules
[^ 0-9] Faites correspondre tous les caractères non-numériques
[^ Az] Correspond tous les caractères alphabétiques minuscules
^ Un personnage qui correspond au début
$ Correspond au caractère de fin du caractère
\ D Correspond à un caractère de chiffres, et [0-9] la même syntaxe
\ D + Associez chaîne numérique multiple, et [0-9] + syntaxe
\ D Non numérique, l'autre avec \ d
\ D + Non numérique, l'autre avec \ d +
\ W Une chaîne de lettres ou de chiffres, et [a-zA-Z0-9] syntaxe
\ W + Et [a-zA-Z0-9] + syntaxe
\ W lettres non anglaises ou des chiffres, des chaînes et [^ a-zA-Z0-9] la même syntaxe
\ W + Et [^ a-zA-Z0-9] + syntaxe
\ S Les espaces, et [\ n \ t \ r \ f] la même syntaxe
\ S + Et [\ n \ t \ r \ f] + comme
\ S Non-espace, et [^ \ n \ t \ r \ f] la même syntaxe
\ S + Et [^ \ n \ t \ r \ f] + syntaxe
\ B lettres anglaises, nombres chaîne de limite correspondant
\ B Mismatched par ordre alphabétique, chaîne frontière numérique
a | b | c En ligne avec une chaîne de caractères correspondant à la nature ou le caractère b ou c
abc Abc chaîne correspondante (modèle) contiennent () se souviendra de ce symbole pour trouver la chaîne, il est une syntaxe très utile. La première chaîne (au sein) trouvé cette variable devient 1 $ ou \ 1 variable, et la seconde (intérieure) ont trouvé une variable de chaîne dans une variable de 2 $ ou \ 2, et ainsi de suite.
/ Pattern / i i Ce paramètre indique ignorer la casse en anglais, qui est, lorsque la chaîne de correspondance, en ignorant la casse question en anglais. \ Si vous voulez trouver un caractère spécial en mode modèle, tel que "*", devra ajouter en face du caractère sur \ symbole, ce qui permettra des caractères spéciaux ne