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
$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
$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
$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.
| Funktion | Beschreibung |
|---|---|
| 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 |