Heim >Backend-Entwicklung >PHP-Tutorial >Mustervergleich mit PHP und regulären Ausdrücken

Mustervergleich mit PHP und regulären Ausdrücken

WBOY
WBOYOriginal
2023-06-13 15:29:24738Durchsuche

In modernen Programmiersprachen ist der Mustervergleich eine sehr häufige Operation. Es wird verwendet, um Teile einer Zeichenfolge zu finden, die bestimmten Regeln entsprechen. In PHP eignen sich reguläre Ausdrücke sehr gut für den Mustervergleich. In diesem Artikel behandeln wir den Mustervergleich mit PHP und regulären Ausdrücken.

Zuerst müssen wir verstehen, was reguläre Ausdrücke sind. Reguläre Ausdrücke sind eine Sprache, die zum Mustervergleich verwendet wird. Es kann verwendet werden, um bestimmte Teile einer Zeichenfolge zu finden, zu ersetzen, zu validieren und zu extrahieren. Reguläre Ausdrücke bestehen aus einigen Zeichen und Sonderzeichen. Diese Zeichen werden zum Abgleichen von Zeichenfolgen verwendet.

In PHP können wir die Funktion preg_match() verwenden, um einen regulären Ausdrucksabgleich durchzuführen. Hier ist ein Beispiel:

$string = "This is a test string.";
$pattern = "/test/i";
preg_match($pattern, $string, $matches);
print_r($matches);

Im obigen Beispiel ist $string die Zeichenfolge, nach der gesucht werden soll. $pattern ist ein regulärer Ausdruck. In diesem Beispiel verwenden wir „/test/i“ als regulären Ausdruck. Das bedeutet, dass wir in der Zeichenfolge nach „test“ suchen, wobei „i“ bedeutet, dass die Groß-/Kleinschreibung nicht berücksichtigt wird. Schließlich ist $matches ein Array, das alle übereinstimmenden Ergebnisse enthält. In diesem Fall sollte Folgendes ausgegeben werden:

Array
(
    [0] => test
)

Wenn keine passende Zeichenfolge gefunden wird, ist das Array $matches leer.

Werfen wir nun einen Blick auf die grundlegendsten Zeichen in regulären Ausdrücken.

  • .: Übereinstimmung mit einem beliebigen Zeichen
  • ^: Übereinstimmung mit dem Anfang der Zeichenfolge
  • $: Übereinstimmung mit dem Ende der Zeichenfolge
  • []: Übereinstimmung mit einem beliebigen Zeichen in Klammern
  • [a-z]: Übereinstimmung zwischen a - z Beliebig Zeichen
  • 1 : Entspricht jedem Zeichen außer a - z
  • () : Entspricht einem Ausdruck in Klammern

Hier ist ein Beispiel für die Übereinstimmung mit einer Postleitzahl:

$string = "12345-6789";
$pattern = "/^[0-9]{5}(-[0-9]{4})?$/";
preg_match($pattern, $string, $matches);
print_r($matches);

Im obigen Beispiel haben wir a verwendet einige verschiedene Zeichen:

  • ^ : stellt den Anfang der Zeichenfolge dar
  • [0-9]{5} : entspricht 5 Zahlen
  • (-[0-9 | 6789
  • Jetzt haben wir genug gelernt, um anzufangen ein komplexeres Drehbuch schreiben. Hier ist ein Beispiel, um alle PHP-Dateien in einem Ordner zu finden und alle darin enthaltenen Funktionen und Methoden aufzulisten:
$dir = "./";
$files = scandir($dir);

foreach ($files as $file) {
    if (preg_match("/.php$/", $file)) {
        $content = file_get_contents($file);
        preg_match_all("/(function|public function|private function|protected function|method|public method|private method|protected method) ([a-zA-Z0-9_]+)/", $content, $matches);
        echo "In $file:
";
        foreach ($matches[2] as $match) {
            echo "- $match()
";
        }
    }
}

Im obigen Beispiel haben wir die Funktion preg_match_all() verwendet. Diese Funktion ähnelt der Funktion preg_match(), außer dass sie nach allen Übereinstimmungen und nicht nur nach der ersten Übereinstimmung sucht. Wir haben auch einen regulären Ausdruck verwendet, um alle Funktionen und Methoden abzugleichen. In diesem Beispiel werden wir nur öffentliche, private und geschützte Funktionen und Methoden auflisten.

    Wir haben gesehen, wie man Mustervergleiche mit PHP und regulären Ausdrücken durchführt. Diese Technik ist sehr leistungsstark und kann für viele verschiedene Zwecke verwendet werden, vom einfachen String-Abgleich bis zur komplexen Datenvalidierung. Wenn Sie noch nicht versucht haben, reguläre Ausdrücke zu verwenden, empfehlen wir Ihnen, sich etwas Zeit zu nehmen, sie zu erlernen und mit ihrer Verwendung zu beginnen, da sie Ihnen dabei helfen können, effizienteren und flexibleren Code zu schreiben.
  • a-z

Das obige ist der detaillierte Inhalt vonMustervergleich mit PHP und regulären 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