Die Sprache für reguläre Ausdrücke besteht aus zwei grundlegenden Zeichentypen: wörtliche (normale) Textzeichen und Metazeichen.
Verwandte Empfehlungen:Metazeichen verfügt über Verarbeitungsfunktionen mithilfe regulärer Ausdrücke. Metazeichen können jedes einzelne Zeichen sein, das in
1. Syntax-Tutorial für reguläre Ausdrücke (einschließlich Online-Testtools)
2. Schnellstart-Video-Tutorial für reguläre Ausdrücke 🎜>
platziert ist ([ ]
bedeutet beispielsweise, dass ein einzelnes Kleinbuchstabe [a]
zutrifft), oder es kann eine Folge von Zeichen sein (wie a
bedeutet, dass es mit einem beliebigen Zeichen zwischen Zeichen und [a-d]
alle englischen Buchstaben, Zahlen und Unterstriche darstellt), sind gängige Metazeichen wie folgt: a 、b、 c、 d
w
Gemeinsame Metazeichen
Beschreibung | Besondere Anweisungen | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
. |
Entspricht jedem Zeichen außer Newline () |
~ | |||||||||||||||||||||||||||||||||||||||||||||
[abcde] |
Entspricht jedem Zeichen in a b c d e
|
Alle Zeichen sind oder
|
|||||||||||||||||||||||||||||||||||||||||||||
[a-h] |
Entspricht einem beliebigen Zeichen zwischen und h
|
~ | |||||||||||||||||||||||||||||||||||||||||||||
[^fgh] |
stimmt mit keinem Zeichen in fgh überein. |
Fügen Sie ^ hinzu > vor dem ersten Zeichen der Klammer
stimmt mit keinem Zeichen überein, das innerhalb der Klammer erscheint |
|||||||||||||||||||||||||||||||||||||||||||||
td> Entspricht englischen Groß- und Kleinbuchstaben, jeder Zahl zwischen 0 und 9 und Unterstrichen, entsprechend |
[a- zA-Z0-9_]
~ td> | | |||||||||||||||||||||||||||||||||||||||||||||
W |
& Im Gegenteil, äquivalent zu [^a-zA-Z0-9_]
|
~ | |||||||||||||||||||||||||||||||||||||||||||||
s code> |
entspricht jedem Leerzeichen, äquivalent zu [fnrtv]
|
~ | |||||||||||||||||||||||||||||||||||||||||||||
S | ist das Gegenteil von s, entspricht [^s]
|
~ | |||||||||||||||||||||||||||||||||||||||||||||
d |
Entspricht einer beliebigen einzelnen Zahl zwischen 0 und 9, entspricht [0-9] |
~ | |||||||||||||||||||||||||||||||||||||||||||||
D |
ist das Gegenteil von d , äquivalent zu [^0-9]
| ~ | |||||||||||||||||||||||||||||||||||||||||||||
[u4e00-u9fa5] |
Entspricht einem beliebigen chinesischen Zeichen (Chinesisch) (hier werden die durch die Unicode -Codierung dargestellten chinesischen Zeichen verwendet)
|
~ | |||||||||||||||||||||||||||||||||||||||||||||
b |
Passen Sie den Anfang oder das Ende eines Wortes an | ~ | |||||||||||||||||||||||||||||||||||||||||||||
^
| Der Anfang der passenden Zeichenfolgewird vor dem ersten Zeichen der eckigen Klammern platziert und wird umgekehrt | ||||||||||||||||||||||||||||||||||||||||||||||
$ | Übereinstimmung mit dem Ende der Zeichenfolge | ~ |
-Einheitn
Wenn wir Klammern verwenden, um eine lange Zeichenfolge einzufügen, werden die gesamten Klammern als
字符 | 描述 | 特别说明 |
---|---|---|
* |
匹配 0 到 多 个元字符,相当于 {0,}
|
~ |
? |
匹配 0 到 1 个元字符, 相当于 {0,1}
|
~ |
+ |
匹配至少 1 个元字符,相当于 {1,}
|
~ |
{n} |
匹配 n 个元字符 | ~ |
{n,} |
匹配至少 n 个元字符 | ~ |
{n,m} |
匹配 n 到 m 个元字符 | ~ |
b |
匹配单词边界 | ~ |
^ |
字符串必须以指定的字符开始 | ~ |
$ |
字符串必须以指定的字符结束 | ~ |
分组
zu bilden, zum Beispiel steht ^(13)[4-9]d{8}$
für jedes Zeichen, das mit beginnt 13 Mobiltelefonnummer beginnend mit. abcabcabc+
bedeutet, dass der letzte Buchstabe c
mindestens einmal vorkommt; (abcabcabc)+
bedeutet, dass die gesamte Zeichenfolge abcabcabc
mindestens einmal vorkommt. |
verwenden, um die Beziehung zwischen 或
darzustellen. Beispielsweise bedeutet z|j|q
, dass mit jedem Buchstaben in z 、j、q
übereinstimmt. Tatsächlich entspricht es [zjq]
. ab|cd|ef
bedeutet: entweder ab
, cd
oder ef
. a(b|cd|e)f
bedeutet: beginnend mit a
, entweder b
, cd
oder e
, und schließlich enden mit f
. |
(或
) sind die Klammern (( )
) [0-9A-Z.?]
Dies regelmäßig Wie verstehst du? .
und ?
in eckigen Klammern erscheinen, werden .
und ?
zu normalen Zeichen, also Punkt und Fragezeichen. Sie können verstehen, dass die Priorität von [ ]
größer ist als die Priorität von . 和 ?
. ?aaa.bbb
überein. Denken Sie daran, dass . 和 ?
hier als normales Zeichen behandelt wird. Mehrfachauswahlstruktur ist eigentlich die Verwendung von Metazeichen |
(oder).
Bereich definieren: Anfang, Ende, Klammern
Regular | Bedeutung | ||||||||
---|---|---|---|---|---|---|---|---|---|
Windows98|Windows2000|WindowsXP |
entspricht Windows98 oder Windows2000 oder WindowsXP |
||||||||
^Windows98|Windows2000|WindowsXP$ |
Verwenden Sie Windows98-Code > beginnt entweder mit <code>Windows2000 oder endet mit WindowsXP
^ und $ beide im Geltungsbereich von enthalten sind, weil sind nur: Anfang, Ende, Klammern
|
||||||||
Windows(98|2000|XP) |
Windows , dann 98 oder 2000 oder XP
|
Zusammenfassung: Die Mehrfachauswahlstruktur kann viele Zeichen umfassen, aber die Grenzen von 括号
nicht überschreiten.
(d{1,3}.){3}d{1,3}
, aber es wird auch die unmögliche IP-Adresse ((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)
Mit dem 左括号
Einfache Erklärung: In regulären Ausdrücken werden Klammern verwendet, um die Vorderseite zu unterteilen (gruppieren), und dann wird der durch die Klammern übereinstimmende Inhalt
in Anführungszeichen gesetztb(w+)bs+1b
usw. dargestellt. (Die erste Klammer ist where where go, tom tom happy
als Markierung und zählen Sie die Klammern einfach von links nach rechts. Umsehen stimmt mit keinem Zeichen überein, sondern nur mit der
spezifischen Position im Text. Ähnlich wie , 1
, 2
. 1
Umschauen beansprucht keine Zeichen. (w+(.?))
(
b
^
$
hinter der Position kann mit (?=exp)
In umgekehrter Reihenfolge exp
(?=d)
(?!exp)
übereinstimmen. Beispiel: Die linke Seite der aktuellen Position ist die Zahl exp
(?!d)
(?<=exp)
exp
(?<=d)
(?<!exp)
Wenn der reguläre Ausdruck einen Quantifizierer enthält, der Wiederholungen akzeptiert Das übliche Verhalten von exp
besteht darin, so viele Zeichen (?!d)
wie möglich zu finden. +
Lazy Matching*
, d >. Auf diese Weise bedeutet {3,12}
, dass eine beliebige Anzahl von Wiederholungen abgeglichen wird, aber die wenigsten Wiederholungen von verwendet werden, die das gesamte -Match erfolgreich machen. a.*b
entspricht der kürzesten Zeichenfolge, die mit a
beginnt und mit b
endet. Wenn Sie es auf aabab
anwenden, stimmt es mit aabab
und überein.
?
. .*?
Fortgeschritten 5 – Priorität des Mustervergleichs a.*?b
von links nach rechts a
berechnet, und Vorgänge mit unterschiedlichen Prioritäten sind b
zuerst hoch und dann niedrig aabab
. Die übereinstimmende Reihenfolgenpriorität verschiedener Operatoren aab
reicht von hoch nach niedrig ab
, wie in der folgenden Tabelle dargestellt. 顺序 | 元字符 | 描述 |
---|---|---|
1 |
|
转义字符 |
2 |
() 、(?:) 、(?=) 、[]
|
模式单元和原子表 |
3 |
* 、+ 、? 、{n} 、{n,} 、{n,m}
|
重复匹配 |
4 |
^ 、$ 、b 、B 、A 、Z
|
边界限制 |
5 | | |
模式选择 |
1F: Wie soll ich den regulären Ausdruck schreiben, damit er mit dem 33333333333
in der Zeichenfolge $
übereinstimmt?
2Q: Wenn die Funktion preg_match
in PHP die Ausdrücke einfache Anführungszeichen bzw. doppelte Anführungszeichen verwendet, um mit dem obigen $
übereinzustimmen, wie schreibt man das?
Antwort:
$
'/\$/'
. (Zur einfacheren Anzeige teilen wir es in '/\ \ \ $/'
auf.) "/\$/"
. (Zur besseren Übersicht haben wir es in "/\ \ \ $/"
aufgeteilt) Eine andere Antwort:
wird maskiert, wir brauchen also 6
um Ausdrücke zu generieren. Zusätzlich zum Escapezeichen benötigen doppelte Anführungszeichen auch ein weiteres
zum Escapezeichen
$
, daher sind 7 erforderlich.
Verwandte Tutorial-Empfehlungen: PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung regulärer Ausdrücke. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!