PHP Reguläre Ausdrücke (PCRE)

Ein regulärer Ausdruck beschreibt ein Muster zum Abgleich von Zeichenketten. Er kann verwendet werden, um zu prüfen, ob eine Zeichenkette eine bestimmte Teilzeichenkette enthält, übereinstimmende Teilzeichenketten zu ersetzen oder Teilzeichenketten zu extrahieren, die bestimmte Bedingungen aus einer Zeichenkette erfüllen.

Weitere Inhalte zu regulären Ausdrücken finden Sie in unserem:Reguläre Ausdrücke - Tutorial。

In PHP werden reguläre Ausdrücke hauptsächlich über eine Reihe integrierter Funktionen verwendet, von denen die am häufigsten verwendeten sind:

  • preg_match(): Sucht in einer Zeichenkette nach einem übereinstimmenden Muster und gibt nur den ersten Treffer zurück.
  • preg_match_all(): Sucht in einer Zeichenkette nach einem übereinstimmenden Muster und gibt alle Treffer zurück.
  • preg_replace(): Sucht in einer Zeichenkette nach einem übereinstimmenden Muster und ersetzt es dann.

preg_match()-Funktion

Die Funktion preg_match() wird verwendet, um in einer Zeichenkette nach einem passenden Muster zu suchen und gibt nur den ersten Treffer zurück.

preg_match(pattern, subject, matches)

Parameter description:

  • pattern: Das Muster des regulären Ausdrucks.
  • subject: Die zu durchsuchende Zeichenkette.
  • matches: Optionaler Parameter, der zum Speichern des Übereinstimmungsergebnisses verwendet wird.

Beispiel

<?php
$str = "Hello, World!";
$pattern = "/Hello/";
if (preg_match($pattern, $str, $matches)) {
    echo "Match successful!" . PHP_EOL;
    print_r($matches);
} else {
    echo "No match found!";
}
?>

Die Ausgabe des obigen Codes ist:

匹配成功!
Array
(
    [0] => Hello
)

preg_match_all()-Funktion

Die Funktion preg_match_all() wird verwendet, um in einer Zeichenkette nach einem übereinstimmenden Muster zu suchen und alle Übereinstimmungen zurückzugeben.

preg_match_all(pattern, subject, matches)

Parameter description:

  • Wird verwendet, um in einer Zeichenkette nach einem übereinstimmenden Muster zu suchen und alle Übereinstimmungen zurückzugeben.
  • pattern: Das Muster des regulären Ausdrucks.
  • subject: Die zu durchsuchende Zeichenkette.
  • matches: Array, das zum Speichern aller übereinstimmenden Ergebnisse verwendet wird.

Beispiel

<?php
$str = "Die Katze und der Hut";
$pattern = "/[aeiou]/";
if (preg_match_all($pattern, $str, $matches)) {
    echo "Übereinstimmende Vokale: " . implode(", ", $matches[0]);
} else {
    echo "No match found!";
}
?>

Die Ausgabe des obigen Codes ist:

匹配的元音字母: e, a, a, e, a

preg_replace()-Funktion

Die Funktion preg_replace() wird verwendet, um in einer Zeichenkette nach einem übereinstimmenden Muster zu suchen und es dann zu ersetzen.

preg_replace(pattern, replacement, subject)

Parameter description:

  • pattern: Das Muster des regulären Ausdrucks.
  • replacement: Die Ersetzungszeichenfolge.
  • subject: Die zu durchsuchende Zeichenkette.

Beispiel

<?php
$str = "I love PHP";
$pattern = "/PHP/";
$replacement = "EXAMPLE";
$new_str = preg_replace($pattern, $replacement, $str);
echo "String after replacement: " . $new_str;
?>

Die Ausgabe des obigen Codes ist:

替换后的字符串: I love EXAMPLE

PCRE-Funktionen

In PHP können wir die PCRE-Erweiterung verwenden, um Zeichenkettenmuster abzugleichen.

FunktionBeschreibung
preg_filter Führt eine Suche und Ersetzung mit regulärem Ausdruck durch
preg_grep Gibt Array-Einträge zurück, die dem Muster entsprechen
preg_last_error Gibt den Fehlercode zurück, der bei der letzten Ausführung des PCRE-Regex erzeugt wurde
preg_match_all Führt einen globalen Abgleich mit einem regulären Ausdruck durch
preg_match Führt einen Abgleich mit einem regulären Ausdruck durch
preg_quote Maskiert Zeichen regulärer Ausdrücke
preg_replace_callback_array Führt eine Suche und Ersetzung mit einem regulären Ausdruck unter Verwendung eines Callbacks durch
preg_replace_callback Führt eine Suche und Ersetzung mit einem regulären Ausdruck unter Verwendung eines Callbacks durch
preg_replace Führt eine Suche und Ersetzung mit regulärem Ausdruck durch
preg_split Teile eine Zeichenkette mit einem regulären Ausdruck auf

PREG-Konstanten

Konstante Beschreibung Seit welcher Version
PREG_PATTERN_ORDER Ergebnisse werden nach "pattern" sortiert, nur für preg_match_all() verwendet, d.h., $matches seit
PREG_SET_ORDER Ergebnisse werden nach "set" sortiert, nur für preg_match_all() verwendet, d.h., $matches  
PREG_OFFSET_CAPTURE SiehePREG_SPLIT_OFFSET_CAPTUREdie Beschreibung von. 4.3.0
PREG_SPLIT_NO_EMPTY Dieses Flag weist preg_split() an, nur nicht-leere Teile zurückzugeben.  
PREG_SPLIT_DELIM_CAPTURE Dieses Flag weist preg_split() an, auch den von Klammerausdrücken übereinstimmenden Inhalt zu erfassen. 4.0.5
PREG_SPLIT_OFFSET_CAPTURE Wenn dieses Flag gesetzt ist, wird auch der Offset jedes Vorkommens des übereinstimmenden Teilstrings zurückgegeben. Beachten Sie, dass dies die Werte im zurückgegebenen Array ändert, wobei jedes Element ein Array ist, das aus dem übereinstimmenden Teilstring als Element 0 und seinem Offset relativ zum Zielstring als Element 1 besteht. Dieses Flag kann nur mit preg_split() verwendet werden. 4.3.0
PREG_NO_ERROR Wird von preg_last_error() zurückgegeben, wenn kein passender Fehler vorliegt. 5.2.0
PREG_INTERNAL_ERROR Wird von preg_last_error() zurückgegeben, wenn ein interner PCRE-Fehler vorliegt. 5.2.0
PREG_BACKTRACK_LIMIT_ERROR Wird von preg_last_error() zurückgegeben, wenn das Backtracking-Limit überschritten wird. 5.2.0
PREG_RECURSION_LIMIT_ERROR Wird von preg_last_error() zurückgegeben, wenn das Rekursionslimit überschritten wird. 5.2.0
PREG_BAD_UTF8_ERROR Wird von preg_last_error() zurückgegeben, wenn der letzte Fehler durch abnorme UTF-8-Daten verursacht wurde (nur verfügbar, wenn reguläre Ausdrücke im UTF-8-Modus ausgeführt werden). 5.2.0
PREG_BAD_UTF8_OFFSET_ERROR Wird von preg_last_error() zurückgegeben, wenn der Offset nicht zu gültigem UTF-8-Code passt (nur verfügbar, wenn reguläre Ausdrücke im UTF-8-Modus ausgeführt werden). 5.3.0
PCRE_VERSION PCRE-Versionsnummer und Veröffentlichungsdatum (z. B. "7.0 18-Dec-2006"). 5.2.4
Andere Erweiterungen