Heim  >  Artikel  >  Backend-Entwicklung  >  Einführungs-Tutorial zu regulären PHP-Ausdrücken

Einführungs-Tutorial zu regulären PHP-Ausdrücken

WBOY
WBOYOriginal
2023-06-23 12:46:491574Durchsuche

Bei der Entwicklung von Websites oder Anwendungen müssen wir häufig Text verarbeiten. Wenn es sich nur um einfache Zeichenfolgenoperationen wie Suchen und Ersetzen, Abfangen usw. handelt, können Sie möglicherweise auch einige integrierte Funktionen verwenden, um diese abzuschließen. Wenn Sie jedoch einen komplexeren Mustervergleich oder eine komplexere Datenextraktion durchführen müssen, müssen Sie reguläre Ausdrücke verwenden.

Reguläre Ausdrücke sind ein leistungsstarkes Werkzeug zur Verarbeitung von Textdaten. Es hilft uns, Zeichenfolgen mithilfe bestimmter Symbole und Regeln abzugleichen und zu verarbeiten. In PHP sind reguläre Ausdrücke integriert und der Abgleich kann mithilfe der PCRE-Bibliothek (Perl-kompatible reguläre Ausdrücke) erfolgen.

In diesem Artikel stellen wir die grundlegende Syntax und Verwendung regulärer PHP-Ausdrücke vor, um Anfängern den schnellen Einstieg und die Beherrschung dieses leistungsstarken Tools zu erleichtern.

  1. Grundlegende Syntax

Reguläre Ausdrücke bestehen aus bestimmten Zeichen und Regeln, die das abzugleichende Muster beschreiben. In PHP müssen reguläre Ausdrücke mit Schrägstrichen (/) umschlossen werden. Zum Beispiel:

$pattern = "/hello world/i";

Dieser reguläre Ausdruck wird verwendet, um „Hallo Welt“ in einer Zeichenfolge abzugleichen, und ignoriert die Groß-/Kleinschreibung.

Unter diesen stellt „/“ den Anfang und das Ende des regulären Ausdrucks dar, und die Mitte ist das abzugleichende Muster. In diesem Beispiel haben wir den Modifikator „i“ verwendet, um die Groß-/Kleinschreibung zu ignorieren. Modifikatoren befinden sich außerhalb des Schrägstrichs und werden verwendet, um das Übereinstimmungsverhalten des regulären Ausdrucks zu ändern. Gängige Modifikatoren sind:

Modifikator Beschreibung
i Groß-/Kleinschreibung ignorieren
m Strings als mehrere Zeilen behandeln
s will Der Punkt (.) stimmt überein alle Zeichen, einschließlich Zeilenumbrüche
x Leerzeichen und Kommentare in regulären Ausdrücken ignorieren
  1. Zeichensatz

In regulären Ausdrücken können wir Zeichensätze verwenden, um einen bestimmten Zeichensatz abzugleichen. Zeichensätze müssen in eckige Klammern ([]) eingeschlossen werden. Zum Beispiel:

$pattern = "/[aeiou]/i";

Dieser reguläre Ausdruck wird verwendet, um jeden Vokal in der Zeichenfolge abzugleichen, wobei die Groß- und Kleinschreibung ignoriert wird.

In eckigen Klammern listen wir die passenden Zeichen auf, getrennt durch Kommas (,). Zur Angabe eines Bereichs kann ein Bindestrich (-) verwendet werden. Zum Beispiel:

$pattern = "/[a-z]/i";

Dieser reguläre Ausdruck wird verwendet, um alle Kleinbuchstaben abzugleichen, wobei Groß- und Kleinbuchstaben ignoriert werden.

Einige spezielle Metazeichen können auch in eckigen Klammern verwendet werden, um einen bestimmten Zeichensatz darzustellen. Zum Beispiel:

Metazeichen Beschreibung
d entspricht einer beliebigen Zahl
D entspricht einer beliebigen Zahl, die keine Zahl ist
w Passen Sie einen beliebigen Buchstaben, eine Zahl oder einen Unterstrich an
W entspricht allen Zeichen, die keine Buchstaben, Zahlen oder Unterstriche sind.
s entspricht allen Leerzeichen (Leerzeichen, Tabulatoren, Zeilenumbrüche usw.).
S entspricht allen A-Zeichen, die keine Leerzeichen sind Zeichen
  1. Quantifizierer

In regulären Ausdrücken können wir Quantifizierer verwenden, um die Anzahl der Übereinstimmungen für ein Element anzugeben. Gängige Quantifizierer sind:

Beschreibung
|. Übereinstimmung mit 1 oder mehr
    ? |. Übereinstimmung mit 0 oder mehr
  • {n} | n
  • {n ,} |. Entspricht mindestens n
  • {n,m} |. Entspricht n bis m


    Zum Beispiel:
    $pattern = "/a+/i";
  • Dieser reguläre Ausdruck wird verwendet, um einen oder mehrere Buchstaben „A“ in einer Zeichenfolge zu finden, wobei die Groß- und Kleinschreibung ignoriert wird.
$pattern = "/d{3,}/";

Dieser reguläre Ausdruck wird verwendet, um Zeichenfolgen mit mindestens 3 Ziffern abzugleichen.

Grenzübereinstimmung

    In regulären Ausdrücken wird Grenzübereinstimmung verwendet, um den Umfang der Übereinstimmung einzuschränken. Gängige Grenzübereinstimmungen sind:

Übereinstimmungssymbol Beschreibung ^ Übereinstimmung mit dem Anfang der Zeichenfolge Übereinstimmung mit dem Ende der Zeichenfolge Match Wortgrenzen entsprechen Positionen
$
B
außer Wortgrenzen

例如:

$pattern = "/^hello/i";

这个正则表达式用于匹配以“hello”开头的字符串,忽略大小写。

$pattern = "/world$/i";

这个正则表达式用于匹配以“world”结尾的字符串,忽略大小写。

$pattern = "/hello/i";

这个正则表达式用于匹配单词“hello”,忽略大小写。

  1. 捕获分组

在正则表达式中,我们可以使用捕获分组来提取匹配的内容。捕获分组需要使用圆括号(())将要捕获的内容包裹起来。例如:

$pattern = "/(d{3})-(d{4})/";
$string = "my phone number is 123-4567";
if(preg_match($pattern, $string, $matches)){
    echo $matches[0]; // 123-4567
    echo $matches[1]; // 123
    echo $matches[2]; // 4567
}

这个正则表达式用于匹配“123-4567”这种形式的电话号码,并且将前三个数字和后四个数字分别保存到$matches数组中。

  1. 贪婪匹配和非贪婪匹配

在正则表达式中,默认情况下会进行贪婪匹配。也就是说,它会尽可能多地匹配字符。例如:

$pattern = "/.*hello/";
$string = "my name is hello, nice to meet you";
if(preg_match($pattern, $string, $matches)){
    echo $matches[0]; // my name is hello
}

这个正则表达式用于匹配字符串中的“hello”之前的所有字符。

如果我们想进行非贪婪匹配,也就是尽可能少地匹配字符,可以在量词后面添加一个问号(?)来实现。例如:

$pattern = "/.*?hello/";
$string = "my name is hello, nice to meet you";
if(preg_match($pattern, $string, $matches)){
    echo $matches[0]; // my name is 
}

这个正则表达式也用于匹配字符串中的“hello”之前的所有字符,但是它只匹配到了“my name is”。

  1. 其他函数

除了preg_match()函数之外,PHP中还提供了其他一些正则表达式相关的函数,例如:

函数 描述
preg_match_all() 用于匹配所有符合正则表达式的结果
preg_replace() 用于替换符合正则表达式的字符串
preg_split() 用于按照正则表达式将字符串分割成数组

例如:

$pattern = "/d+/";
$string = "I have 123 apples and 456 bananas";
$result = preg_match_all($pattern, $string, $matches);
print_r($matches);

$result = preg_replace($pattern, "***", $string);
echo $result;

$result = preg_split($pattern, $string);
print_r($result);

这段代码分别演示了匹配所有数字、替换所有数字、以数字为分隔符将字符串分割成数组的操作。

总结

本文介绍了PHP正则表达式的基本语法和用法,包括字符集、量词、边界匹配、捕获分组、贪婪匹配和非贪婪匹配等内容。正则表达式是一种非常强大的工具,掌握它可以让我们在处理文本时事半功倍。希望本文能够帮助读者快速入门并掌握PHP正则表达式的基本用法。

Das obige ist der detaillierte Inhalt vonEinführungs-Tutorial zu regulären PHP-Ausdrücken. 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