Heim >Backend-Entwicklung >PHP-Tutorial >PHP-regulärer Ausdruck
Was ist ein regulärer Ausdruck?
Ein regulärer Ausdruck ist eine logische Formel, die mit Zeichenfolgen arbeitet und einige bestimmte Zeichen zu einer regulären Zeichenfolge kombiniert Man nennt es ein reguläres Matching-Muster.
Die Zeichenfolge „/apple/“ ist ein regulärer Ausdruck, der verwendet wird, um abzugleichen, ob die Apfelzeichenfolge in der Quellzeichenfolge vorhanden ist.
Die PCRE-Bibliotheksfunktion wird in PHP verwendet, um einen regulären Abgleich durchzuführen. Beispielsweise wird preg_match im obigen Beispiel verwendet, um einen regulären Abgleich durchzuführen und wird häufig verwendet, um zu bestimmen, ob ein Typ von Zeichenmuster vorhanden ist.
Grundlegende Syntax regulärer Ausdrücke
In der PCRE-Bibliotheksfunktion verwendet das reguläre Übereinstimmungsmuster Trennzeichen und Metazeichen Trennzeichen können alle Zeichen außer Zahlen, Backslashes und Leerzeichen sein. Häufig verwendete Trennzeichen sind Schrägstrich (/), Raute-Symbol (#) und Negationssymbol (~), zum Beispiel:
Wenn das Muster Trennzeichen enthält, müssen Trennzeichen vorhanden sein mit backslash() maskiert werden.
Wenn das Muster viele Trennzeichen enthält, wird empfohlen, andere Zeichen als Trennzeichen zu verwenden, oder Sie können preg_quote als Escapezeichen verwenden.
Mustermodifikatoren können nach dem Trennzeichen verwendet werden. Zu den Mustermodifikatoren gehören: i, m, s, x usw. Durch die Verwendung des i-Modifikators kann beispielsweise die Groß-/Kleinschreibung ignoriert werden:
Metazeichen und Escapezeichen
haben in regulären Ausdrücken eine besondere Bedeutung. Die Zeichen werden als Metazeichen bezeichnet:
Sie werden im Allgemeinen verwendet, um die Zeichen
^ zu maskieren, um die Startposition des Ziels (oder der Zeile im Mehrzeilenmodus) festzulegen ).start)
$ Legt die Endposition des Ziels fest (oder das Zeilenende im Mehrzeilenmodus)
Entspricht jedem Zeichen außer Newline (Standard)
[Startzeichenklassendefinition
] Endzeichen Klassendefinition
|. Startet einen optionalen Zweig
(Start-Tag der Untergruppe
). Als Quantifizierer, der 0 oder 1 Übereinstimmungen anzeigt. Wird nach dem Quantifizierer platziert, um die gierige Natur des Quantifizierers zu ändern. (Quantifizierer nachschlagen)
* Quantifizierer, 0 oder mehr Übereinstimmungen
+ Quantifizierer, 1 oder mehr Übereinstimmungen
{ Benutzerdefiniertes Quantifizierer-Start-Tag
} Benutzerdefiniertes Quantifizierer-End-Tag
Für Metazeichen gibt es zwei Verwendungsszenarien: Zum einen können sie überall verwendet werden, zum anderen können sie nur in eckigen Klammern verwendet werden:
Das Escape-Zeichen ^ gibt nur bei Verwendung als erstes Zeichen (in eckigen Klammern) die Negation der Zeichenklasse an
- markiert den Zeichenbereich
Wobei ^ außerhalb der hinteren Klammer steht und die Startposition des Assertionsziels angibt, innerhalb der eckigen Klammern jedoch die Negation der Zeichenklasse darstellt. Das Minuszeichen in den eckigen Klammern kann den Zeichenbereich markieren, z. B. 0 -9. Alle Zahlen zwischen 0 und 9.
Gieriger Modus und Lazy-Modus
Jeder der regulären Ausdrücke The Wenn das Metazeichen mit einem Zeichen übereinstimmt, werden so viele Zeichen wie möglich angezeigt. Wenn jedoch das Fragezeichen verwendet wird, werden so wenige Zeichen wie möglich verwendet.
Gieriger Modus: Priorisieren Sie den Abgleich, wenn er abgeglichen werden kann oder nicht.
Lazy-Modus: Wenn er abgeglichen werden kann oder nicht übereinstimmend, wird es zuerst abgeglichen. Wenn wir keine Übereinstimmung finden
, wenn wir die Länge der übereinstimmenden Zeichen genau kennen, können wir {} verwenden, um die Anzahl der übereinstimmenden Zeichen anzugeben
Verwenden Sie reguläre Ausdrücke zum Abgleichen
Der Zweck der Verwendung regulärer Ausdrücke soll eine bessere Leistung erzielen als die Zeichenfolgenverarbeitung. Die Funktion verfügt über eine flexiblere Verarbeitungsmethode. Daher wird sie wie die Zeichenfolgenverarbeitungsfunktion hauptsächlich verwendet, um festzustellen, ob eine Teilzeichenfolge vorhanden ist, Zeichenfolgen zu ersetzen, Zeichenfolgen aufzuteilen, Musterteilzeichenfolgen zu erhalten usw.
PHP verwendet die PCRE-Bibliotheksfunktion, um eine reguläre Verarbeitung durchzuführen, indem das Muster festgelegt und dann die entsprechende Verarbeitungsfunktion aufgerufen wird, um das passende Ergebnis zu erhalten.
preg_match wird verwendet, um einen Abgleich durchzuführen. Es kann einfach verwendet werden, um festzustellen, ob das Muster erfolgreich übereinstimmt, oder um ein Abgleichsergebnis zu erhalten. 0 oder 1. In Die Suche stoppt nach 1 Treffer.
Der obige Code führt einfach einen Abgleich durch und bestimmt einfach, ob def erfolgreich abgeglichen werden kann, aber die Stärke regulärer Ausdrücke liegt im Musterabgleich, sodass mehr Muster auftreten verwendet:
Reguläre Ausdrücke können verwendet werden, um ein Muster abzugleichen und nützlichere Daten zu erhalten.
查找所有匹配结果
preg_match只能匹配一次结果,但很多时候我们需要匹配所有的结果,preg_match_all可以循环获取一个列表的匹配结果数组。
可以使用preg_match_all匹配一个表格中的数据:
Eric | 25 |
John | 26 |
$matches结果排序为$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。
正则表达式的搜索和替换
正则表达式的搜索与替换在某些方面具有重要用途,比如调整目标字符串的格式,改变目标字符串中匹配字符串的顺序等。
例如我们可以简单的调整字符串的日期格式:
其中${1}与$1的写法是等效的,表示第一个匹配的字串,$2代表第二个匹配的。
通过复杂的模式,我们可以更加精确的替换目标字符串的内容。
用正则替换来去掉多余的空格与字符:
正则匹配常用案例
正则匹配常用在表单验证上,一些字段会有一定的格式要求,比如用户名一般都要求必须是字母、数字或下划线组成,邮箱、电话等也都有自己的规则,因此使用正则表达式可以很好的对这些字段进行验证。
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了php正则表达式,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。