PHP preg_match(): Reguläre Ausdrücke (Regex)

Was ist ein regulärer Ausdruck in PHP?

Regulärer PHP-Ausdruck auch bekannt als Regex, sind leistungsstarke Mustervergleichsalgorithmen, die in einem einzigen Ausdruck ausgeführt werden können. Reguläre Ausdrücke verwenden arithmetische Operatoren wie (+,-,^), um komplexe Ausdrücke zu erstellen. Sie können Ihnen dabei helfen, Aufgaben wie die Validierung von E-Mail-Adressen, IP-Adressen usw. zu erledigen.

Warum reguläre Ausdrücke verwenden?

  • Reguläre PHP-Ausdrücke vereinfachen die Identifizierung von Mustern in Zeichenfolgendaten durch den Aufruf einer einzelnen Funktion. Das spart uns Programmierzeit.
  • Bei der Validierung von Benutzereingaben wie E-Mail-Adresse, Domänennamen, Telefonnummern, IP-Adressen,
  • Hervorheben von Schlüsselwörtern in Suchergebnissen
  • Beim Erstellen einer benutzerdefinierten HTML-Vorlage. Regex in PHP kann verwendet werden, um die Vorlagen-Tags zu identifizieren und sie durch tatsächliche Daten zu ersetzen.

Integrierte reguläre Ausdrucksfunktionen in PHP

PHP verfügt über integrierte Funktionen, die es uns ermöglichen, mit regulären Funktionen zu arbeiten, die wir in diesem Tutorial zu regulären PHP-Ausdrücken lernen werden. Schauen wir uns die häufig verwendeten regulären Ausdrucksfunktionen in PHP an.

  • preg_match() in PHP – diese Funktion wird verwendet, um in PHP einen Mustervergleich für eine Zeichenfolge durchzuführen. Es gibt true zurück, wenn eine Übereinstimmung gefunden wird, und false, wenn keine Übereinstimmung gefunden wird.
  • preg_split() in PHP – diese Funktion wird verwendet, um einen Mustervergleich für eine Zeichenfolge durchzuführen und die Ergebnisse dann in ein numerisches Array aufzuteilen
  • preg_replace() in PHP – diese Funktion wird verwendet, um einen Mustervergleich für eine Zeichenfolge durchzuführen und den Treffer dann durch den angegebenen Text zu ersetzen.

Nachfolgend finden Sie die Syntax für eine reguläre Ausdrucksfunktion wie PHP preg_match(), PHP preg_split() oder PHP preg_replace().

<?php
function_name('/pattern/',subject);
?>

HIER,

  • „function_name(…)“ ist entweder PHP preg_match(), PHP preg_split() oder PHP preg_replace().
  • „/…/“ Die Schrägstriche kennzeichnen den Anfang und das Ende unserer PHP-Regex-Testerfunktion
  • „'/pattern/'“ ist das Muster, das abgeglichen werden muss
  • „Betreff“ ist die Textzeichenfolge, mit der abgeglichen werden soll

Schauen wir uns nun praktische Beispiele an, die die oben genannten PHP-Regex-Funktionen implementieren.

Preg_match() in PHP

Das erste Beispiel verwendet die Funktion preg_match() in PHP, um einen einfachen Mustervergleich für das Wort Guru in einer bestimmten URL durchzuführen.

Der folgende Code zeigt die Implementierung der Testerfunktion preg_match() für das obige Beispiel.

<?php
$my_url = "www.guru99.com";
if (preg_match("/guru/", $my_url))
{
	echo "the url $my_url contains guru";
}
else
{
	echo "the url $my_url does not contain guru";
}
?>

Navigieren Sie zur URL http://localhost/phptuts/preg_match_simple.php

Integrierte reguläre Ausdrucksfunktionen

Lassen Sie uns den Teil des Codes untersuchen, der für unsere Ausgabe verantwortlich ist.preg_match('/guru/', $my_url)“ HIER,

  • „preg_match(…)“ ist die PHP-Regex-Funktion
  • „'/guru/'“ ist das Muster des regulären Ausdrucks, das abgeglichen werden soll
  • „$my_url“ ist die Variable, die den Text enthält, mit dem abgeglichen werden soll.

Das folgende Diagramm fasst die oben genannten Punkte zusammen

PHP Preg_split()

Schauen wir uns nun ein weiteres Beispiel an, das die Funktion preg_split() in PHP verwendet.

Wir nehmen eine Zeichenfolgenphrase und zerlegen sie in ein Array. Das abzugleichende Muster ist ein einzelnes Leerzeichen.

Die in diesem Beispiel zu verwendende Textzeichenfolge lautet „I Love Regular Expressions“.

Der folgende Code veranschaulicht die Implementierung des obigen Beispiels.

<?php

$my_text="I Love Regular Expressions";

$my_array  = preg_split("/ /", $my_text);

print_r($my_array );

?>

Navigieren Sie zur URL http://localhost/phptuts/preg_split.php

PHP Preg_split()

PHP Preg_replace()

Schauen wir uns nun preg_replace() an PHP-Funktion das einen Mustervergleich durchführt und dann das Muster durch etwas anderes ersetzt.

Der folgende Code sucht nach dem Wort Guru in a Schnur.

Es ersetzt das Wort „Guru“ durch das Wort „Guru“, umgeben von CSS-Code, der die Hintergrundfarbe hervorhebt.

<?php

$text = "We at Guru99 strive to make quality education affordable to the masses. Guru99.com";

$text = preg_replace("/Guru/", '<span style="background:yellow">Guru</span>', $text);

echo $text;

?>

Vorausgesetzt, Sie haben die Datei preg_replace.php im Browser unter der URL gespeichert http://localhost/phptuts/preg_replace.php

PHP Preg_replace()

Metazeichen für reguläre Ausdrücke

In den obigen Beispielen wurden sehr einfache Muster verwendet. Metazeichen ermöglichen uns lediglich, komplexere Mustervergleiche durchzuführen, beispielsweise um die Gültigkeit einer E-Mail-Adresse zu testen. Sehen wir uns nun die häufig verwendeten Metazeichen an.

Metazeichen Beschreibung Beispiel
. Entspricht jedem einzelnen Zeichen außer einer neuen Zeile /./ passt auf alles, was ein einzelnes Zeichen hat
^ Entspricht dem Anfang einer Zeichenfolge / schließt Zeichen aus /^PH/ entspricht jeder Zeichenfolge, die mit PH beginnt
$ Entspricht dem Muster am Ende der Zeichenfolge /com$/ entspricht guru99.com, yahoo.com usw.
* Entspricht null (0) oder mehr Zeichen /com*/ passt zu Computer, Kommunikation usw.
+ Erfordert, dass vorhergehende Zeichen mindestens einmal vorkommen /yah+oo/ entspricht Yahoo
\ Wird verwendet, um Metazeichen zu maskieren /yahoo+\.com/ behandelt den Punkt als Literalwert
[...] Zeichenklasse /[abc]/ entspricht abc
AZ Entspricht Kleinbuchstaben /az/ passt zu cool, fröhlich usw.
A-Z Entspricht Großbuchstaben /AZ/ entspricht WAS, WIE, WARUM usw.
0 - 9 Entspricht einer beliebigen Zahl zwischen 0 und 9 /0-4/ entspricht 0,1,2,3,4

Die obige Liste enthält nur die am häufigsten verwendeten Metazeichen in regulären Ausdrücken.

Schauen wir uns nun ein recht komplexes Beispiel an, das die Gültigkeit einer E-Mail-Adresse überprüft.

<?php
$my_email = "name@company.com";
if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $my_email)) {
echo "$my_email is a valid email address";
}
else
{
  echo "$my_email is NOT a valid email address";
}
?>

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

HIER,

  • „'/…/'“ startet und beendet den regulären Ausdruck
  • „^[a-zA-Z0-9._-]“ passt zu allen Klein- und Großbuchstaben, Zahlen zwischen 0 und 9 sowie Punkten, Unterstrichen und Bindestrichen.
  • „+@[a-zA-Z0-9-]“ entspricht dem @-Symbol gefolgt von Klein- oder Großbuchstaben, Zahlen zwischen 0 und 9 oder Bindestrichen.
  • „+\.[a-zA-Z.]{2,5}$/“ maskiert den Punkt mit dem Backslash und gleicht dann alle Klein- oder Großbuchstaben mit einer Zeichenlänge zwischen 2 und 5 am Ende der Zeichenfolge ab.

Navigieren Sie zur URL http://localhost/phptuts/preg_match.php

[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/]

Wie Sie der obigen Beispielaufschlüsselung entnehmen können, sind Metazeichen sehr wirkungsvoll, wenn es darum geht, Muster abzugleichen.

Zusammenfassung

  • Ein regulärer Ausdruck oder Regex in PHP ist ein Mustervergleichsalgorithmus
  • Reguläre Ausdrücke sind sehr nützlich, wenn Sie Validierungsprüfungen durchführen, HTML-Vorlagensysteme erstellen, die Tags erkennen usw.
  • PHP verfügt über integrierte Funktionen, nämlich PHP preg_match(), PHP preg_split() und PHP preg_replace(), die reguläre Ausdrücke unterstützen.
  • Metazeichen ermöglichen es uns, komplexe Muster zu erstellen