Heim  >  Artikel  >  Backend-Entwicklung  >  Regulärer PHP-Ausdruck: So extrahieren Sie Teilzeichenfolgen vor und nach mehreren bestimmten Zeichen aus einer Zeichenfolge

Regulärer PHP-Ausdruck: So extrahieren Sie Teilzeichenfolgen vor und nach mehreren bestimmten Zeichen aus einer Zeichenfolge

WBOY
WBOYOriginal
2023-06-22 13:51:101389Durchsuche

Regulärer Ausdruck ist ein leistungsstarkes Textvergleichstool, das bestimmte Teilzeichenfolgen in Zeichenfolgen finden und extrahieren kann. Bei der PHP-Programmierung müssen wir normalerweise Daten vor und nach mehreren bestimmten Zeichen aus einer Zeichenfolge extrahieren. In diesem Fall können wir dies mithilfe regulärer Ausdrücke erreichen.

In diesem Artikel erfahren Sie, wie Sie mithilfe regulärer PHP-Ausdrücke Teilzeichenfolgen vor und nach mehreren bestimmten Zeichen aus einer Zeichenfolge extrahieren. Wir werden die Funktion preg_match_all und reguläre Ausdrücke verwenden, um diese Funktionalität zu erreichen.

  1. Verwenden Sie die Funktion preg_match_all.

In PHP können wir die Funktion preg_match_all für den Abgleich regulärer Ausdrücke verwenden. Der Prototyp dieser Funktion lautet wie folgt:

preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] ) : int

Darunter ist $pattern das reguläre Ausdrucksmuster, $subject die abzugleichende Zeichenfolge, $matches das Abgleichsergebnis und $flags ein optionaler Parameter, der den Abgleichsmodus angibt , der Standardwert ist PREG_PATTERN_ORDER, $offset stellt die Position in der Zeichenfolge dar, an der die Suche beginnt.

  1. Reguläre Ausdrücke erstellen

Bevor wir die Funktion preg_match_all verwenden, müssen wir zuerst den regulären Ausdruck erstellen, den wir benötigen. In diesem Beispiel müssen wir die Teilzeichenfolgen vor und nach mehreren bestimmten Zeichen aus einer Zeichenfolge extrahieren. Dies können wir in den folgenden zwei Schritten tun:

(1) Passen Sie die Teilzeichenfolge vor einem bestimmten Zeichen an

Wir können den regulären Ausdruck verwenden Muster (.*)Spezifische Zeichen zum Abgleichen der Teilzeichenfolge vor einem bestimmten Zeichen, wobei .* bedeutet, dass null oder mehr beliebige Zeichen übereinstimmen, spezifische Zeichen sind die Zeichen, die wir extrahieren müssen . (.*)特定字符 匹配特定字符之前的子字符串,其中 .* 表示匹配零个或多个任意字符,特定字符是我们需要提取的字符。

例如,如果我们需要从字符串 Hello world! My name is PHP. 中提取 worldPHP 之前的所有字符,我们可以使用正则表达式 /^(.*)world.*s(.*)PHP.*/

这里的 /^ 表示匹配字符串的起始位置,s 表示匹配一个空格字符。

(2)匹配特定字符之后的子字符串

我们可以使用正则表达式模式 特定字符(.*) 匹配特定字符之后的子字符串,其中 .* 表示匹配零个或多个任意字符,特定字符是我们需要提取的字符。

例如,如果我们需要从字符串 Hello world! My name is PHP. 中提取 worldPHP 之后的所有字符,我们可以使用正则表达式 /world(.*)PHP(.*)/

  1. 完整代码示例

下面是一个完整的 PHP 代码示例,演示如何从一个字符串中提取多个特定字符之前和之后的子字符串。

<?php
// 待匹配的字符串
$str = 'Hello world! My name is PHP.';

// 正则表达式模式
$pattern = '/^(.*)world.*s(.*)PHP.*/';

// 使用 preg_match_all 函数匹配字符串
preg_match_all($pattern, $str, $matches, PREG_PATTERN_ORDER);

// 输出匹配结果
print_r($matches[1]); // 输出:Array ( [0] => Hello ) 
print_r($matches[2]); // 输出:Array ( [0] => My name is )
?>

上面的代码先定义了一个待匹配的字符串 $str,然后构建了正则表达式模式 $pattern。然后使用 preg_match_all 函数匹配字符串,并将匹配结果存储在 $matches 数组中。最后,输出匹配结果。

在上面的代码示例中,我们可以看到使用 /^(.*)world.*s(.*)PHP.*/ 正则表达式模式匹配到的结果:HelloMy name is,分别存储在 $matches[1]$matches[2]

Wenn wir zum Beispiel alle Zeichen vor world und PHP aus der Zeichenfolge Hallo Welt extrahieren müssen, Wir können den regulären Ausdruck /^(.*)world.*s(.*)PHP.*/ verwenden.
  1. Hier bedeutet /^ die Übereinstimmung mit der Startposition der Zeichenfolge und s bedeutet die Übereinstimmung mit einem Leerzeichen.
(2) Teilzeichenfolge nach bestimmten Zeichen abgleichen

Wir können das reguläre Ausdrucksmuster Bestimmte Zeichen (.*) verwenden, um die Teilzeichenfolge nach bestimmten Zeichen abzugleichen, wobei .* bedeutet, dass null oder mehr beliebige Zeichen übereinstimmen, und die spezifischen Zeichen sind die Zeichen, die wir extrahieren müssen. 🎜🎜Wenn wir zum Beispiel alle Zeichen nach world und PHP aus der Zeichenfolge My name is PHP. extrahieren müssen, dann müssen wir Sie können den regulären Ausdruck /world(.*)PHP(.*)/ verwenden. 🎜
    🎜Vollständiges Codebeispiel🎜🎜🎜Hier ist ein vollständiges PHP-Codebeispiel, das zeigt, wie Teilzeichenfolgen vor und nach mehreren bestimmten Zeichen aus einer Zeichenfolge extrahiert werden. 🎜rrreee🎜Der obige Code definiert zunächst eine zu vergleichende Zeichenfolge $str und erstellt dann das reguläre Ausdrucksmuster $pattern. Verwenden Sie dann die Funktion preg_match_all, um die Zeichenfolge abzugleichen und die Übereinstimmungsergebnisse im Array $matches zu speichern. Abschließend werden die Matching-Ergebnisse ausgegeben. 🎜🎜Im obigen Codebeispiel können wir das Ergebnis der Verwendung von /^(.*)world.*s(.*)PHP.*/ regulären Ausdrucksmustervergleich sehen: Hello und <code>My name is werden in den Arrays $matches[1] bzw. $matches[2] gespeichert. 🎜🎜🎜Zusammenfassung🎜🎜🎜In diesem Artikel wird erläutert, wie Sie reguläre PHP-Ausdrücke verwenden, um Teilzeichenfolgen vor und nach mehreren bestimmten Zeichen aus einer Zeichenfolge zu extrahieren. Wir erstellen zunächst das reguläre Ausdrucksmuster, verwenden dann die Funktion preg_match_all, um den Abgleich durchzuführen und die Abgleichsergebnisse in einem Array zu speichern. Anhand der Beispiele in diesem Artikel können wir sehen, dass reguläre Ausdrücke zur einfachen Implementierung von String-Matching- und Teilstring-Extraktionsfunktionen verwendet werden können. 🎜

Das obige ist der detaillierte Inhalt vonRegulärer PHP-Ausdruck: So extrahieren Sie Teilzeichenfolgen vor und nach mehreren bestimmten Zeichen aus einer Zeichenfolge. 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