logo

PHP preg_match()-Funktion

Die Funktion preg_match() ist eine integrierte Funktion von PHP, die einen regulären Ausdrucksabgleich durchführt. Diese Funktion durchsucht die Zeichenfolge nach einem Muster und gibt „true“ zurück, wenn das Muster vorhanden ist, andernfalls wird „false“ zurückgegeben.

Im Allgemeinen beginnt die Suche am Anfang des Zeichenfolgenparameters $subject. Der optionale Parameter $offset wird verwendet, um die Suche ab der angegebenen Position zu starten.

Syntax

 int preg_match (string $pattern, string $subject, array $matches, int $flags, int $offset) 

Hinweis: $offset ist ein optionaler Parameter, der die Position angibt, an der die Suche beginnen soll.

Parameter

Diese Funktion akzeptiert fünf Parameter, die im Folgenden beschrieben werden:

Muster

Es handelt sich um einen Parameter vom Typ String. Dieser Parameter enthält das zu suchende Muster als Zeichenfolge.

Thema

Dieser Parameter enthält die Eingabezeichenfolge, in der wir nach Muster suchen.

Streichhölzer

Wenn der Parameter „matches“ angegeben wird, enthält er die Suchergebnisse.

Übereinstimmungen[0] - Es wird der Text gespeichert, der mit dem vollständigen Muster übereinstimmt.

Übereinstimmungen[1] - Es enthält den Text, der mit dem ersten erfassten Teilmuster in Klammern übereinstimmt, und so weiter.

Flaggen

Versandhandel-Traversal-Binärbaum

Die Flags können die folgenden Flags haben:

    PREG_OFFSET_CAPTURE:Wenn dieses Flag in preg_match() übergeben wird, wird für jede auftretende Übereinstimmung auch der zugehörige String-Offset zurückgegeben.PREG_UNMATCHED_AS_NULL:Wenn dieses Flag in preg_match() übergeben wird, werden nicht übereinstimmende Untermuster als NULL gemeldet, andernfalls werden sie als leere Zeichenfolge gemeldet.

versetzt

Standardmäßig beginnt die Suche am Anfang des Parameters $subject. Der Offset-Parameter wird verwendet, um den Ort anzugeben, an dem die Suche beginnen soll. Es handelt sich um einen optionalen Parameter.

Rückgabetyp

Die Funktion preg_match() gibt true zurück, wenn das Muster übereinstimmt, andernfalls gibt sie false zurück.

Hinweis: Wenn Sie nur prüfen möchten, ob eine Zeichenfolge in einer anderen Zeichenfolge enthalten ist, verwenden Sie nicht die Funktion preg_match(). Verwenden Sie die Funktion strpos(), da diese schneller ist.

Beispiele

 <?php //initialize a variable of string type $site = 'javatpoint'; preg_match('/(java)(t)(point)/', $site, $matches, PREG_OFFSET_CAPTURE); //display the matches result print_r($matches); ?> 

Ausgabe:

 Array ( [0] =&gt; Array ( [0] =&gt; javatpoint [1] =&gt; 0 ) [1] =&gt; Array ( [0] =&gt; java [1] =&gt; 0 ) [2] =&gt; Array ( [0] =&gt; t [1] =&gt; 4 ) [3] =&gt; Array ( [0] =&gt; point [1] =&gt; 5 ) ) 

Wir können die obige Ausgabe wie folgt sehen, um sie besser zu verstehen.

 Array ( [0] =&gt; Array ( [0] =&gt; javatpoint [1] =&gt; 0 ) [1] =&gt; Array ( [0] =&gt; java [1] =&gt; 0 ) [2] =&gt; Array ( [0] =&gt; t [1] =&gt; 4 ) [3] =&gt; Array ( [0] =&gt; point [1] =&gt; 5 ) ) 

Beispiele: Suche ohne Berücksichtigung der Groß-/Kleinschreibung

 <?php //initialize a variable of string type $website = 'JTP is a best online platform to learn.'; //case insensitive search for word jtp //The 'i' after pattern delimiter indicates case-insensitive search $res = preg_match('/jtp/i', $website, $matches); if ($res) { echo 'Pattern matched in string.</br>&apos;; print_r($matches); } else { echo &apos;Pattern not matched in string.&apos;; } ?&gt; 

Ausgabe:

 Pattern matched in string. Array ( [0] =&gt; JTP ) 

Beispiele: durch Verwendung der Wortgrenze ()

Was ist Regex Java?
 <?php /* The  indicates the word boundary in the pattern. So, it matches only the distinct word like 'web', and words like 'coreweb' or ' webinar' do not match partially.*/ if (preg_match('/web/i', 'PHP is a web scripting language.')) { echo 'A match was found. </br>&apos;; } else { echo &apos;A match was not found. <br>&apos;; } if (preg_match(&apos;/web/i&apos;, &apos;PHP is a website scripting language.&apos;)) { echo &apos;A match was found.&apos;; } else { echo &apos;A match was not found.&apos;; } ?&gt; 

Ausgabe:

 A match was found. A match was not found. 

Beispiele: Ermitteln Sie den Domänennamen aus der URL

 

Ausgabe:

 Domain name is: javatpoint.com 

Regex-Syntax (Regulärer Ausdruck).

[ABC] Entspricht einem einzelnen Zeichen – a, b oder c
[^abc] Entspricht jedem einzelnen Zeichen außer a, b oder c
[a-z] Entspricht jedem einzelnen Zeichen im Bereich a-z
[a-zA-Z] Jedes einzelne Zeichen im Bereich a-z oder A-Z
^ Anfang der Linie
$ Ende der Linie
A Anfang der Zeichenfolge
Mit Ende der Zeichenfolge
. Ein beliebiges einzelnes Zeichen
S Beliebiges Leerzeichen
S Jedes Zeichen, das kein Leerzeichen ist
D Beliebige Ziffer
D Alle nicht-stelligen Zahlen
In Beliebiges Wortzeichen (Buchstabe, Zahl, Unterstrich)
IN Jedes Zeichen, das kein Wort ist
B Wortgrenzenprüfer
/?/ Startet und beendet den regulären Ausdruck
(?) Erfassen Sie alles, was in Klammern steht ()
(a|b) A oder B
A? Null oder einer von a
A* Null oder mehr von einem
a+ Einer oder mehrere von a
ein{3} Genau 3 von einem
a{3,} 3 oder mehr von a
a{3,6} Zwischen 3 und 6 a
ich Prüfung ohne Berücksichtigung der Groß- und Kleinschreibung
M Machen Sie Punkt-Match-Neuzeilen
X Leerzeichen in Regex ignorieren

Erklären des Musters „[^[a-zA-Z0-9._-] +@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/]“

    ''/?/''Es zeigt Anfang und Ende des regulären Ausdrucks.'[^[a-zA-Z0-9._-]'Es entspricht allen Groß- und Kleinbuchstaben, Zahlen zwischen 0 und 9, Punkten, Unterstrichen und Bindestrichen.'+@[a-zA-Z0-9-]'Es entspricht dem @-Symbol, gefolgt von Groß- oder Kleinbuchstaben, Zahlen zwischen 0 und 9 oder Bindestrichen.'+.[a-zA-Z.]{2.5}$/'Der Punkt wird durch einen Backslash maskiert und entspricht dann allen Klein- oder Großbuchstaben mit einer Länge zwischen 2 und 5 am Ende der Zeichenfolge.