Heim  >  Artikel  >  Backend-Entwicklung  >  Reguläre PHP-Ausdrücke

Reguläre PHP-Ausdrücke

PHPz
PHPzOriginal
2024-08-29 13:01:52551Durchsuche

Regulärer Ausdruck kann als Mustervergleichsalgorithmus definiert werden, der in einer einzelnen Zeile generiert wird. Diese sind bei der Validierungsprüfung und bei der Vorlagenerkennung von Bedeutung. Die Metazeichen ermöglichen dem Benutzer den Umgang mit komplexen Mustern. Somit trägt die Unterstützung in PHP für reguläre Ausdrücke dazu bei, die Codequalität einer PHP-Programmierung zu verbessern. Jeder reguläre Ausdruck ist ein generisches Muster oder eine Folge einer Reihe von Zeichen, die zur Bereitstellung von Mustervergleichsfunktionen für eine bestimmte Betreffzeichenfolge verwendet werden. Es ist auch als RegExp oder RegEx bekannt. Es wird auch als eine auf Musternotation basierende kleine Programmiersprache betrachtet, die zum Parsen von Textzeichenfolgen verwendet wird.

WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

2 Sätze regulärer Ausdrücke in PHP-Funktionen

Das Folgende unterstützt zwei Sätze regulärer Ausdrücke:

  • POSIX Reguläre Ausdrücke
  • Reguläre Ausdrücke im PERL-Stil

1. Reguläre POSIX-Ausdrücke

Dies ist ein Zeichensatz, bei dem jedes einzelne Zeichen mit der Eingabezeichenfolge übereinstimmen muss. Diese Ausdrücke werden innerhalb von [].

definiert

Beispiel:

  • [0-9]: Dies dient zum Filtern jeder Dezimalzeichenfolge von 0 bis 9.
  • [a-Z]: Dies dient zum Filtern aller Zeichen vom Kleinbuchstaben „a“ bis zum Großbuchstaben „Z“.

Um den Filter spezifischer zu gestalten, wurde eine Standardsyntax entwickelt, die Regex und Sonderzeichen umfasst, die als Quantifizierer bekannt sind. Es liefert auch Informationen zur Häufigkeit, d. h. zur Häufigkeit des Vorkommens oder Vorkommens von eingeklammerten Zeichen oder einer Gruppe von Zeichen und der Menge.

Tabelle mit Beschreibungen für verschiedene Quantoren:

Quantifier Description
S+ Filters out a string having at least one ‘s’.
S* Filters out a string having zero or more ‘s’.
S? Filters out a string having zero or one ‘s’.
S{N} Filters out a string having a sequence of N ‘s’.
S$ Filters out a string having ‘s’ at the end.
^S Filters out a string having ‘s’ at the beginning.
Quantifizierer

Beschreibung

S+ Filtert eine Zeichenfolge heraus, die mindestens ein „s“ enthält. S* Filtert eine Zeichenfolge mit null oder mehr „s“ heraus. S? Filtert eine Zeichenfolge mit null oder einem „s“ heraus. S{N} Filtert eine Zeichenfolge mit einer Folge von N „s“ heraus. S$ Filtert eine Zeichenfolge mit einem „s“ am Ende heraus. ^S Filtert eine Zeichenfolge heraus, die ein „s“ am Anfang hat. PHP unterstützt auch Matching-Funktionen in Bezug auf vordefinierte Zeichenbereiche/-klassen.
predefined character class Description
[[:space:]] Filters out a string having a space.
[[:alpha:]] Filters out a string having alphabetic characters a-A through z-Z.
[[:digit:]] Filters out a string having numerical 0 to 9.
[[:alnum:]] Filters out a string having alphanumeric characters a-A through z-Z and numerical 0 to 9.
Beispiel: vordefinierte Zeichenklasse Beschreibung [[:space:]] Filtert eine Zeichenfolge mit einem Leerzeichen heraus. [[:alpha:]] Filtert eine Zeichenfolge mit den Buchstaben a-A bis z-Z heraus. [[:digit:]] Filtert eine Zeichenfolge mit den Zahlen 0 bis 9 heraus. [[:alnum:]] Filtert eine Zeichenfolge mit den alphanumerischen Zeichen a-A bis z-Z und den Zahlen 0 bis 9 heraus.

Für den POSIX-Regex integriert PHP verschiedene Funktionen, um verschiedene Vorgänge mithilfe von Regexes im POSIX-Stil auszuführen.

Die Funktionen werden wie in der folgenden Tabelle beschrieben:

POSIX Regex function Description
ereg() Used to search a string specified by or by pattern and to return true if the matching is found.
ereg_replace() Used to search a string specified by or by pattern and replace with replacement if the matching is found.
eregi() Used to perform non-case sensitive search for a string specified by or by pattern and to return true if the matching is found.
eregi_replace() Used to perform non-case sensitive for a string specified by or by pattern and replace with replacement if the matching is found.
split() Used to divide the string into separate elements based on boundaries that matches the searching pattern.
spliti() Used to perform non-case sensitive for the string to divide it into separate elements based on boundaries that matches the searching pattern.
sql_regcase() A utility function that convert each character from the input value into a bracketed expression making two characters.

2. Reguläre Ausdrücke im PERL-Stil

Diese Art von Regex-Mustern ähnelt POSIX-Regex, wird jedoch mit Metazeichen und Bezeichnern erstellt. Die Syntax für diese Regexes ist mit dem POSIX-Stil austauschbar.

a. Metazeichen: Ein Alphabetzeichen, dem ein Backslash vorangestellt ist, der eine bestimmte Bedeutung darstellt, wird als Metazeichen bezeichnet.

Es gibt verschiedene Metazeichen, die in PHP-Skripten unterstützt werden und als Perl-Typ-Regex verwendet werden, wie unten beschrieben:

Meta character Description
. Single character
d A digit character
D Non-digit character
s white space character e.g. SPACE, NEW LINE, TAB
S Non- white space character
w A word character
W Non-word character
[aeiou] Filters the matched character out of the given set
[^aeiou] Filters the unmatched character out of the given set
(set1|set2|set3) Filters the matched element that matches to any of the given alternatives
Metazeichen

Beschreibung . Einzelnes Zeichen d Ein Ziffernzeichen D Nicht-stelliges Zeichen s Leerzeichen, z. B. LEERZEICHEN, NEUE ZEILE, TAB S Nicht-Leerzeichen w Ein Wortzeichen W Nicht-Wort-Zeichen [aeiou] Filtert das übereinstimmende Zeichen aus dem angegebenen Satz [^aeiou] Filtert das nicht übereinstimmende Zeichen aus dem angegebenen Satz (set1|set2|set3) Filtert das übereinstimmende Element, das mit einer der angegebenen Alternativen übereinstimmt

b. Modifikatoren:

Diese Elemente ermöglichen dem Benutzer zusätzliche Flexibilität bei der Arbeit mit regulären Ausdrücken.
Modifier Description
g Finds matchings globally.
cg Enable continue global search even after matching fails.
i Instructs to perform case insensitive search.
s Use the character ‘.’ to search for new line character.
m In case of input string containing new line or carriage return character, ‘^’ and ‘$’ are used to match for new line boundary.
x Permits to use white space to improve the clarity of the expression.
o Restrict the evaluation of the expression to occur only once.
Verschiedene Modifikatoren und ihre Funktionalitäten sind in der folgenden Tabelle aufgeführt: Modifikator Beschreibung g Sucht Übereinstimmungen global. cg Aktivieren Sie die Fortsetzung der globalen Suche, auch wenn der Abgleich fehlschlägt. i Weist an, eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen. s Verwenden Sie das Zeichen „.“, um nach neuen Zeilenzeichen zu suchen. m Wenn die Eingabezeichenfolge eine neue Zeile oder ein Wagenrücklaufzeichen enthält, werden „^“ und „$“ verwendet, um die neue Zeilengrenze zu ermitteln. x Ermöglicht die Verwendung von Leerzeichen, um die Klarheit des Ausdrucks zu verbessern. o Beschränken Sie die Auswertung des Ausdrucks auf nur einmal.

Ähnlich wie die POSIX-Regex-Funktion bietet PHP auch einige spezifische Funktionen, die mit Regex im PERL-Stil kompatibel sind.

Einige der Hauptfunktionen werden im Folgenden erläutert:

PERL style regexpcompitable function Description
preg_match() Return the first occurrence of the matching pattern.
preg_match_all() Return all occurrences of the matching pattern.
preg_split() Splits the string input into several elements based on the given regexp pattern as input.
Preg_quote() Used to quote the characters of the regex.
preg_grep() Used to find all the matching elements from array input.
preg_replace() Used to find matching element and replace it with the given replacement.

Beispiel für reguläre PHP-Ausdrücke

Das folgende Beispiel demonstriert die Anwendung

Das Code-Snippet dient dazu, die Eingabezeichenfolge zu durchsuchen und die gegebene Eingabe in mehrere Elemente aufzuteilen, indem der gegebene Regex als Grenze definiert wird.

Code:

<?php
// Declaring a regex
$regex = "([0-9]+)";
// Defining the input string
$inputstr = "String_a 1 String_b 2 String_c 3";
//Splitting the input string based on matching regex expression
$result = preg_split ($regex, $inputstr);
// Displaying result
echo $result[0];
echo "\n";
echo $result[1];
echo "\n";
echo $result[2];
echo "\n";
?>

Ausgabe

Die Funktion preg_split() hat die Eingabezeichenfolge in drei Teile aufgeteilt, da die Elemente „1“, „2“ und „3“ als Grenzen markiert sind.

Reguläre PHP-Ausdrücke

Das obige ist der detaillierte Inhalt vonReguläre PHP-Ausdrücke. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP Magic-KonstantenNächster Artikel:PHP Magic-Konstanten