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

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

PHPz
PHPzOriginal
2023-06-23 08:41:102088Durchsuche

Regulärer Ausdruck ist ein leistungsstarkes Textverarbeitungstool, mit dem wir den benötigten Inhalt aus einer Menge Text extrahieren können. Die Verwendung regulärer Ausdrücke in PHP ist ebenfalls sehr praktisch. In diesem Artikel erfahren Sie, wie Sie die Teilzeichenfolgen vor und nach bestimmten Zeichen aus einer Zeichenfolge extrahieren.

  1. Verwenden Sie die Funktion preg_match.

In PHP können Sie mit der Funktion preg_match ganz einfach das, was wir benötigen, aus einer Zeichenfolge extrahieren. Der erste Parameter dieser Funktion ist ein regulärer Ausdruck, der zweite Parameter ist die zu durchsuchende Zeichenfolge und der dritte Parameter ist ein Array, das zum Speichern der übereinstimmenden Ergebnisse verwendet werden kann.

Wenn wir beispielsweise die Teilzeichenfolge „Hallo“ aus der Zeichenfolge „Hallo Welt“ extrahieren möchten, können wir den folgenden Code verwenden:

$pattern = '/w+/';
$str = 'Hello world';
preg_match($pattern, $str, $matches);
echo $matches[0];  // 输出 "Hello"

Im obigen Code verwenden wir einen regulären Ausdruck w+, was bedeutet, dass ein oder mehrere Buchstaben, Zahlen oder Unterstriche übereinstimmen. Daher kann die Funktion preg_match den Teilstring „Hello“ abgleichen und im ersten Element des Arrays $matches speichern. w+,它表示匹配一个或多个字母、数字或下划线。因此,preg_match 函数可以匹配到 "Hello" 这个子字符串,并将它存储在 $matches 数组的第一个元素中。

同样的,如果我们想要从字符串 "I am a boy" 中提取出 "boy" 这个子字符串,可以使用以下代码:

$pattern = '/w+/';
$str = 'I am a boy';
preg_match($pattern, $str, $matches);
echo $matches[2];  // 输出 "boy"

在上面的代码中,我们使用了一个正则表达式 w+,它表示匹配一个单词。由于要匹配第三个单词,所以 $matches 数组中存储的是第三个匹配项,也就是 "boy"。

  1. 使用 preg_match_all 函数

如果要从字符串中提取多个子字符串,可以使用 preg_match_all 函数。该函数与 preg_match 函数的用法类似,但是它可以匹配所有符合条件的子字符串,并将它们存储在 $matches 数组中。

例如,如果我们想要从字符串 "I have a cat and a dog" 中提取出所有的动物名称,可以使用以下代码:

$pattern = '/[a-z]+/';
$str = 'I have a cat and a dog';
preg_match_all($pattern, $str, $matches);
print_r($matches[0]);  // 输出 Array("cat", "and", "dog")

在上面的代码中,我们使用了一个正则表达式 [a-z]+

Ähnlich können wir, wenn wir die Teilzeichenfolge „Junge“ aus der Zeichenfolge „Ich bin ein Junge“ extrahieren möchten, den folgenden Code verwenden:
    $pattern = '/cats/';
    $replacement = 'dogs';
    $str = 'I love cats, but I hate dogs';
    echo preg_replace($pattern, $replacement, $str);  // 输出 "I love dogs, but I hate dogs"
  1. Im obigen Code verwenden wir einen regulären Ausdruck w+ Code>, was bedeutet, dass ein Wort gefunden wird. Da wir das dritte Wort finden möchten, speichert das Array $matches die dritte Übereinstimmung, nämlich „boy“.
    1. Verwenden Sie die Funktion preg_match_all.

      Wenn Sie mehrere Teilzeichenfolgen aus einer Zeichenfolge extrahieren möchten, können Sie die Funktion preg_match_all verwenden. Diese Funktion ähnelt der Funktion preg_match, gleicht jedoch alle übereinstimmenden Teilzeichenfolgen ab und speichert sie im Array $matches.

      Wenn wir beispielsweise alle Tiernamen aus der Zeichenfolge „Ich habe eine Katze und einen Hund“ extrahieren möchten, können wir den folgenden Code verwenden:

      rrreee

      Im obigen Code verwenden wir einen regulären Ausdruck [a-z]+ , was bedeutet, dass ein Wort gefunden wird, das mit einem Buchstaben beginnt und mit einem Buchstaben endet. Da alle Teilzeichenfolgen, die die Bedingungen erfüllen, abgeglichen werden sollen, werden alle übereinstimmenden Teilzeichenfolgen im Array $matches gespeichert.

      🎜🎜Verwenden der Funktion preg_replace🎜🎜🎜Zusätzlich zum Extrahieren von Teilzeichenfolgen aus einer Zeichenfolge können wir die Funktion preg_replace auch verwenden, um bestimmte Teilzeichenfolgen in einer Zeichenfolge durch andere Zeichenfolgen zu ersetzen. Der erste Parameter dieser Funktion ist der zu ersetzende reguläre Ausdruck, der zweite Parameter ist die ersetzte Zeichenfolge, der dritte Parameter ist die zu verarbeitende Zeichenfolge und der vierte Parameter ist die Anzahl der Ersetzungen (kann weggelassen werden, Standard ist -1). , das alle Übereinstimmungen ersetzt). 🎜🎜Wenn wir beispielsweise in der Zeichenfolge „Ich liebe Katzen, aber ich hasse Hunde“ „Katzen“ durch „Hunde“ ersetzen möchten, können wir den folgenden Code verwenden: 🎜rrreee🎜Im obigen Code verwenden wir einen regulären Code Ausdruck „cats“, um mit der Teilzeichenfolge übereinzustimmen, die durch „dogs“ ersetzt werden soll. 🎜🎜Zusammenfassend lässt sich sagen, dass reguläre Ausdrücke zum einfachen Extrahieren von Teilzeichenfolgen vor und nach bestimmten Zeichen aus einer Zeichenfolge verwendet werden können. Diese Funktion kann in PHP einfach mit den Funktionen preg_match, preg_match_all und preg_replace erreicht werden. 🎜

    Das obige ist der detaillierte Inhalt vonRegulärer PHP-Ausdruck: So extrahieren Sie Teilzeichenfolgen vor und nach 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