Latest web development tutorials

Perl reguläre Ausdrücke

Regex (regulärer Ausdruck) beschreibt eine Reihe von Strings, die verwendet werden können, um zu überprüfen, ob eine Zeichenfolge eine bestimmte Teilzeichen enthält Teilzeichenfolge passende ersetzen oder eine Bedingung entfernen einem Teilstring aus einem String und so weiter.

Perl regex Funktion der Sprache ist sehr mächtig, im Grunde die stärkste gemeinsame Sprache, Unterstützung viele Sprachdesign regulären Ausdruck, wenn sie Bezug Perl reguläre Ausdrücke sind.

Drei Formen von Perl reguläre Ausdrücke sind aufeinander abgestimmt, den Ersatz und die Umwandlung:

  • Spiel: m / / (Auch abgekürzt als / / Ausgelassene m)

  • Ersetzen: s / / /

  • Umwandlung: tr / / /

Diese drei Formen und sind in der Regel= ~ oder! ~Mit dem Einsatz = ~ repräsentiert Spiel! ~ Sagte sie nicht übereinstimmten.


Spiel Betreiber

Spiel Operator m // verwendet, um eine Zeichenfolge oder einen regulären Ausdruck Aussage übereinstimmen, beispielsweise die skalare $ bar in der "run" zu entsprechen, Code wie folgt:

#!/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";
}

Das obige Programm, das Ausgabe ist:

第一次匹配
第二次匹配

Pattern Matching-Modifikatoren

Es gibt einige gemeinsame Muster Modifikatoren Anpassung wie folgt:

Modifikatoren Beschreibung
ich Ignorieren Kapitalisierung Modus
m Multi-line-Modus
o Nur einmal vergeben
s Einzel-Modus "." Match "\ n" (der Standard entspricht nicht)
x Ignorieren leere Modus
g globale Spiel
cg Nach dem Scheitern der globalen Abstimmung ermöglicht wiederum eine passende String zu finden

regex Variablen

Perl wird nach der Verarbeitung des Wertes der drei speziellen Variablennamen existieren zu entsprechen:

  • Der vordere Teil des String - MatchingPortion: $ `
  • $ &: Passender String
  • $ ': Kein Spiel für die restlichen Saiten

Wenn diese drei Variablen zusammen, werden Sie die ursprüngliche Zeichenfolge zu bekommen.

Beispiele sind wie folgt:

#!/usr/bin/perl

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

Das obige Programm Ausgabe lautet:

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

Substitution Betreiber

Substitution Operator s /// Betreiber ist die Erweiterung der Nutzung des neuen String zu der angegebenen Zeichenfolge zu ersetzen. Das Grundformat ist wie folgt:

s/PATTERN/REPLACEMENT/;

MUSTER das Muster, Ersatz zu passen die Zeichenfolge zu ersetzen.

Zum Beispiel, "google" Wir werden die folgende Zeichenfolge ersetzen ist "w3big":

#!/usr/bin/perl

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

print "$string\n";

Das obige Programm Ausgabe lautet:

welcome to w3big site.

Ersatzbetrieb Modifikator

Ersetzen Betrieb Modifikator wie folgt:

Modifikatoren Beschreibung
ich Wenn Sie hinzufügen "i" im Modifikator, dann ist der Regelfall Empfindlichkeit wird abgebrochen, das "a" und "A" ist die gleiche.
m Der Standard starten regelmäßig "^" und Ende "$" ist nur für reguläre String, wenn mit einem "m" Modifikator gekoppelt, dann ist der Anfang und das Ende jeder Zeile der Zeichenfolge beziehen: Am Anfang jeder Zeile ist "^", das Ende ist "$."
o Expression wird nur einmal ausgeführt.
s Wenn Sie "s" im Modifikator hinzufügen, dann ist die Standardeinstellung. "" Im Namen von einem beliebigen Zeichen außer Newline wird jedes Zeichen werden, einschließlich Newline ist!
x Wenn Sie den Modifikator hinzufügen, Ausdruck Leerzeichen werden ignoriert, es sei denn, es entkam wurde.
g Ersetzen Sie alle passenden Saiten.
e Als Ersatz String-Ausdruck

Conversion-Operatoren

Das Folgende ist eine Konvertierungsoperator zugehörigen Modifikatoren:

Modifikatoren Beschreibung
c Konvertierung aller Zeichen nicht angegeben
d Löschen Sie alle angegebenen Zeichen
s Der gleiche Ausgang geschrumpft zu einer Vielzahl von Zeichen

Die folgenden Beispiele die Variable $ string in Kleinbuchstaben in Großbuchstaben umgewandelt:

#!/usr/bin/perl 

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

print "$string\n";

Das obige Programm Ausgabe lautet:

WELCOME TO w3big SITE.

Im folgenden Beispiel wird / s Variable $ string gelöscht Wiederholung Zeichen:

#!/usr/bin/perl

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

print "$string\n";

Das obige Programm Ausgabe lautet:

runob

Weitere Beispiele:

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

Weitere Regeln der regulären Ausdrücke

Ausdruck Beschreibung
. Spiel alle Zeichen außer Newline
x? Spiel 0 oder eine Zeichenkette x
x * Spiel 0 oder mehrmals x Zeichenfolge, aber die minimale Anzahl von möglichen Übereinstimmungen
x + Match 1 oder mehrmals x Zeichenfolge, aber die minimale Anzahl von möglichen Übereinstimmungen
*. Spiel 0 oder mehrere Male jedes Zeichen
. + Match 1 oder mehrere Male von einem beliebigen Zeichen
{M} entspricht genau der angegebenen Zeichenfolge von m
{M, n} Spielen m oder mehr oder weniger bestimmten Zeichenfolge n
{M,} Spiel m oder mehrere bestimmte Zeichenfolge
[] Welche passt ein Zeichen innerhalb []
[^] Spiel erfüllt nicht die Zeichen in []
[0-9] Spiel alle numerischen Zeichen
[Az] Spiel alle Kleinbuchstaben
[^ 0-9] Spiel alle nicht-numerischen Zeichen
[^ Az] Spiele alle Kleinbuchstaben
^ Ein Zeichen, das den Anfang Spiele
$ Spiele das Ende Zeichen des Zeichen
\ D Spiele eine Ziffer Zeichen und [0-9] die gleiche Syntax
\ D + Wer passt zu mehreren Ziffernfolge, und [0-9] + Syntax
\ D Nicht-digital, das andere mit \ d
\ D + Nicht-digital, das andere mit \ d +
\ W Eine Reihe von Buchstaben oder Zahlen, und [a-zA-Z0-9] Syntax
\ W + Und [a-zA-Z0-9] + Syntax
\ W Nicht-englische Buchstaben oder Zahlen, Strings und [^ a-zA-Z0-9] die gleiche Syntax
\ W + Und [^ a-zA-Z0-9] + Syntax
\ S Spaces, und [\ n \ t \ r \ f] die gleiche Syntax
\ S + Und [\ n \ t \ r \ f] + als
\ S Nicht-Raum, und [^ \ n \ t \ r \ f] die gleiche Syntax
\ S + Und [^ \ n \ t \ r \ f] + Syntax
\ B Englisch Buchstaben, Zahlen Grenze String-Matching
\ B Nicht übereinstimm in alphabetischer, numerischer Grenz Zeichenfolge
a | b | c Im Einklang mit einer Zeichenkette passend zum Charakter oder b oder c Zeichen
ABC Abc passende String (Muster) enthalten () Dieses Symbol erinnern, um die Zeichenfolge zu finden, ist es eine sehr nützliche Syntax ist. Die erste Zeichenkette (innerhalb) fanden diese Variable $ 1 1 oder \ wird Variable und die zweite (innere) gefunden $ 2 oder \ 2 Variable, eine String-Variable in ein und so weiter nach unten.
/ Muster / i i Dieser Parameter gibt in englischer Sprache zu ignorieren, das heißt, wenn der Matchstring, ignorieren Fall Frage auf Englisch. \ Wenn Sie ein Sonderzeichen im Pattern-Modus, wie "*" zu finden wollen, müssen vor dem Zeichen hinzufügen auf \ Symbol, wird diese Sonderzeichen erlauben scheitern