Inhaltsverzeichnis
)
Erklärung – Sonderfall
Erweitert 1 – Mehrfachauswahlstruktur
Erweitert 2 – Gruppierung und Rückverweise
Gruppierung
Bestellung
gefunden, die als -------
Beispiel
1. Zeichen-Escape
Heim Backend-Entwicklung PHP-Tutorial Detaillierte Erläuterung regulärer Ausdrücke

Detaillierte Erläuterung regulärer Ausdrücke

Jul 01, 2019 pm 04:25 PM
正则表达式

Detaillierte Erläuterung regulärer Ausdrücke

Die Sprache für reguläre Ausdrücke besteht aus zwei grundlegenden Zeichentypen: wörtliche (normale) Textzeichen und Metazeichen.

Verwandte Empfehlungen:
1. Syntax-Tutorial für reguläre Ausdrücke (einschließlich Online-Testtools)
2. Schnellstart-Video-Tutorial für reguläre Ausdrücke 🎜>
Metazeichen verfügt über Verarbeitungsfunktionen mithilfe regulärer Ausdrücke. Metazeichen können jedes einzelne Zeichen sein, das in

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、 dwGemeinsame Metazeichen

ZeichenDer Anfang der passenden Zeichenfolge
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
字符 描述 特别说明
. 匹配除换行符(n)以外的任意字符 ~
[abcde] 匹配 a b c d e 之中的任意一个字符 所有字符是 的关系
[a-h] 匹配 ah之间的任意一个字符 ~
[^fgh] 不与 fgh之中的任意一个字符匹配 在 中括号[ ] 的第一个字符前加上 ^ 表示 取反
不匹配中括号里面出现的任意字符
w 匹配大小写英文字符及数字 0 到 9 之间的任意一个及下划线,相当于[a-zA-Z0-9_] ~
W w 相反,相当于 [^a-zA-Z0-9_] ~
s 匹配任意的空白符,相当于 [fnrtv] ~
S s相反,相当于 [^s] ~
d 匹配任何 0 到 9 之间的单个数字,相当于 [0-9] ~
D d 相反,相当于[^0-9] ~
[u4e00-u9fa5] 匹配任意单个汉字(中文)(这里用的是 Unicode 编码表示的汉字) ~
b 匹配单词的开始或结束 ~
^ 匹配字符串的开始 放在中括号的第一个字符前 则变为 取反的意思
$ 匹配字符串的结束 ~
zum Negieren

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 ~
^ wird vor dem ersten Zeichen der eckigen Klammern platziert und wird umgekehrt
$ Übereinstimmung mit dem Ende der Zeichenfolge ~
Qualifizierer für reguläre Ausdrücke
  1. Funktion: Begrenzen Sie die Häufigkeit des Vorkommens der Einheit vor diesem Symbol.
  2. Einheit:
Wenn was angezeigt wird Bevor ein Zeichen steht, ist dieses Zeichen eine

-EinheitnWenn wir Klammern verwenden, um eine lange Zeichenfolge einzufügen, werden die gesamten Klammern als

-Einheit
字符 描述 特别说明
* 匹配 0 到 多 个元字符,相当于 {0,} ~
? 匹配 0 到 1 个元字符, 相当于 {0,1} ~
+ 匹配至少 1 个元字符,相当于 {1,} ~
{n} 匹配 n 个元字符 ~
{n,} 匹配至少 n 个元字符 ~
{n,m} 匹配 n 到 m 个元字符 ~
b 匹配单词边界 ~
^ 字符串必须以指定的字符开始 ~
$ 字符串必须以指定的字符结束 ~
Die oben genannten Metazeichen werden alle mit einem einzelnen Zeichen abgeglichen. Wenn Sie mehrere Zeichen gleichzeitig abgleichen möchten, müssen Sie auch Qualifikationsmerkmale verwenden (). und m in der Tabelle unten stellen beide Ganzzahlen dar. )

Erklärung – Sonderfall

  1. kann mehrere Metazeichen oder wörtliche Textzeichen mit -Klammern einschließen, um ein 分组 zu bilden, zum Beispiel steht ^(13)[4-9]d{8}$ für jedes Zeichen, das mit beginnt 13 Mobiltelefonnummer beginnend mit.
    1. abcabcabc+ bedeutet, dass der letzte Buchstabe c mindestens einmal vorkommt;
    2. (abcabcabc)+ bedeutet, dass die gesamte Zeichenfolge abcabcabc mindestens einmal vorkommt.
  2. Sie können | 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].
    1. ab|cd|ef bedeutet: entweder ab, cd oder ef.
    2. a(b|cd|e)f bedeutet: beginnend mit a, entweder b, cd oder e, und schließlich enden mit f.
    3. Zusammenfassung: Die einzige Grenze von | () sind die Klammern (( ))
  3. [0-9A-Z.?] Dies regelmäßig Wie verstehst du?
    1. Wenn . 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 . 和 ?.
    2. Dieser reguläre Ausdruck stimmt genau mit der Zeichenfolge ?aaa.bbb überein. Denken Sie daran, dass . 和 ? hier als normales Zeichen behandelt wird.

Erweitert 1 – Mehrfachauswahlstruktur

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
正则 含义
Windows98|Windows2000|WindowsXP 匹配Windows98或者Windows2000或者WindowsXP
^Windows98|Windows2000|WindowsXP$ Windows98开头或者包含Windows2000或者以WindowsXP结尾
注意^$都包含在|的范围内,因为|的界限只有:开头、结尾、小括号
Windows(98|2000|XP) Windows然后98 或者2000或者XP
Beachten Sie, dass ^ 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.

Erweitert 2 – Gruppierung und Rückverweise

Gruppierung

  • Wir wissen bereits, wie man ein einzelnes Zeichen wiederholt. Was soll ich tun, wenn ich es wiederholen möchte? eine Schnur? Sie
  • können Unterausdrücke (auch Gruppierungen genannt)
  • mithilfe von Klammern angeben.
  • Einfacher IP-Adress-Übereinstimmungsausdruck
  • (d{1,3}.){3}d{1,3}, aber es wird auch die unmögliche IP-Adresse
  • 256.300.888.999
  • abgeglichen. Können Sie einen genaueren regulären Ausdruck schreiben? Übereinstimmung Der Text dieses Unterausdrucks kann von zur weiteren Verarbeitung innerhalb des Ausdrucks oder anderer Programme erfasst werden.
  • Standardmäßig hat jede Gruppe automatisch eine Gruppennummer. Die Regeln lauten: ((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)Mit dem
  • der Gruppe als Markierung ist die Gruppennummer der ersten Gruppe von links nach rechts 1. Der zweite ist 2 und so weiter
.

  • Beispiel:
  • kann verwendet werden, um wiederholte Wörter zuzuordnen.
  • entspricht beispielsweise: 左括号

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 gesetzt
    Später werden sie durch
  • , b(w+)bs+1b usw. dargestellt. (Die erste Klammer ist
  • ...). Wenn Klammern in Klammern
  • verschachtelt sind, denken Sie daran: Verwenden Sie zu diesem Zeitpunkt where where go, tom tom happy als Markierung und zählen Sie die Klammern einfach von links nach rechts.
Erweitert 3 – Umsehen (Zero-Breite-Behauptung)

Umsehen stimmt mit keinem Zeichen überein, sondern nur mit der
spezifischen Position im Text. Ähnlich wie , 1, 2. 1Umschauen beansprucht keine Zeichen. (w+(.?))(

Umsehen ist in zwei Arten unterteilt:

Bestellung

und
    umgekehrte Reihenfolge
  • : Bestellungb^$ hinter der Position kann mit
  • übereinstimmen. Beispiel:
  • Rechts von der aktuellen Position stehen Zahlen. hinter der Position kann nicht übereinstimmen
    • . Beispiel:
        Die rechte Seite der aktuellen Position ist keine Zahl.
      • (?=exp)In umgekehrter Reihenfolge exp(?=d)
      • vor der Position kann (?!exp) übereinstimmen. Beispiel: Die linke Seite der aktuellen Position ist die Zahl exp(?!d)
      • . Das
      vor der Position kann nicht mit
    • übereinstimmen. Beispiel:
        Die linke Seite der aktuellen Position ist keine Zahl.
      • (?<=exp)exp(?<=d)
      • Fortgeschritten 4 – Gier und Faulheit
      • (?<!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.
      Regulärer Ausdruck:
    • , der mit der längsten Zeichenfolge übereinstimmt, die mit
    beginnt und mit
  • endet. Wenn Sie damit nach
suchen, wird die gesamte Zeichenfolge

gefunden, die als -------

Greedy Matching
  • -Wir benötigen +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.
  • Zusammenfassung:
  • Der Unterschied zwischen Greedy- und Lazy-Modus ist: Lazy-Modus hat ein zusätzliches Fragezeichen nach dem Quantifizierer ? . .*?Fortgeschritten 5 – Priorität des Mustervergleichs
  • Bei der Verwendung regulärer Ausdrücke müssen Sie auf die Reihenfolge des Vergleichs achten. Normalerweise wird die gleiche Priorität 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 ^$bBAZ 边界限制
    5 | 模式选择

    Beispiel

    1. Zeichen-Escape

    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:

    • Die für den Ausdruck erforderliche Regel lautet: $
    • Verwenden Sie einfache Anführungszeichen, um die obige Zeichenfolge darzustellen '/\$/' . (Zur einfacheren Anzeige teilen wir es in '/\  \  \  $/' auf.)
    • Verwenden Sie doppelte Anführungszeichen, um die obige Zeichenfolge darzustellen "/\$/". (Zur besseren Übersicht haben wir es in "/\  \  \  $/" aufgeteilt)
    • Was fragen Sie?

    Eine andere Antwort:

  1. Einfache Anführungszeichen in PHP maskieren keine Zeichen, aber nur wird maskiert, wir brauchen also 6 um Ausdrücke zu generieren.
  2. 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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Validierung regulärer PHP-Ausdrücke: Erkennung des Zahlenformats Validierung regulärer PHP-Ausdrücke: Erkennung des Zahlenformats Mar 21, 2024 am 09:45 AM

Überprüfung regulärer PHP-Ausdrücke: Erkennung des Zahlenformats Beim Schreiben von PHP-Programmen ist es häufig erforderlich, die vom Benutzer eingegebenen Daten zu überprüfen. Eine der häufigsten Überprüfungen besteht darin, zu überprüfen, ob die Daten dem angegebenen Zahlenformat entsprechen. In PHP können Sie reguläre Ausdrücke verwenden, um diese Art der Validierung zu erreichen. In diesem Artikel wird erläutert, wie Sie mithilfe regulärer PHP-Ausdrücke Zahlenformate überprüfen und spezifische Codebeispiele bereitstellen. Schauen wir uns zunächst die allgemeinen Validierungsanforderungen für Zahlenformate an: Ganzzahlen: enthalten nur die Zahlen 0–9, können mit einem Plus- oder Minuszeichen beginnen und enthalten keine Dezimalstellen. Gleitkomma

Wie validiere ich eine E-Mail-Adresse in Golang mithilfe eines regulären Ausdrucks? Wie validiere ich eine E-Mail-Adresse in Golang mithilfe eines regulären Ausdrucks? May 31, 2024 pm 01:04 PM

Um E-Mail-Adressen in Golang mithilfe regulärer Ausdrücke zu validieren, führen Sie die folgenden Schritte aus: Verwenden Sie regexp.MustCompile, um ein reguläres Ausdrucksmuster zu erstellen, das gültigen E-Mail-Adressformaten entspricht. Verwenden Sie die MatchString-Funktion, um zu überprüfen, ob eine Zeichenfolge mit einem Muster übereinstimmt. Dieses Muster deckt die meisten gültigen E-Mail-Adressformate ab, einschließlich: Lokale Benutzernamen können Buchstaben, Zahlen und Sonderzeichen enthalten: !.#$%&'*+/=?^_{|}~-`Domänennamen müssen mindestens Eins enthalten Buchstabe, gefolgt von Buchstaben, Zahlen oder Bindestrichen. Die Top-Level-Domain (TLD) darf nicht länger als 63 Zeichen sein.

Wie kann ich Zeitstempel mithilfe regulärer Ausdrücke in Go abgleichen? Wie kann ich Zeitstempel mithilfe regulärer Ausdrücke in Go abgleichen? Jun 02, 2024 am 09:00 AM

In Go können Sie reguläre Ausdrücke verwenden, um Zeitstempel abzugleichen: Kompilieren Sie eine Zeichenfolge mit regulären Ausdrücken, z. B. die, die zum Abgleich von ISO8601-Zeitstempeln verwendet wird: ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . Verwenden Sie die Funktion regexp.MatchString, um zu überprüfen, ob eine Zeichenfolge mit einem regulären Ausdruck übereinstimmt.

Beherrschen Sie reguläre Ausdrücke und String-Verarbeitung in der Go-Sprache Beherrschen Sie reguläre Ausdrücke und String-Verarbeitung in der Go-Sprache Nov 30, 2023 am 09:54 AM

Als moderne Programmiersprache bietet die Go-Sprache leistungsstarke reguläre Ausdrücke und String-Verarbeitungsfunktionen, sodass Entwickler String-Daten effizienter verarbeiten können. Für Entwickler ist es sehr wichtig, reguläre Ausdrücke und String-Verarbeitung in der Go-Sprache zu beherrschen. In diesem Artikel werden die grundlegenden Konzepte und die Verwendung regulärer Ausdrücke in der Go-Sprache sowie die Verwendung der Go-Sprache zum Verarbeiten von Zeichenfolgen ausführlich vorgestellt. 1. Reguläre Ausdrücke sind ein Werkzeug zur Beschreibung von Zeichenfolgenmustern. Sie können problemlos Vorgänge wie Zeichenfolgenabgleich, Suche und Ersetzung implementieren.

Reguläre PHP-Ausdrücke: Exakte Übereinstimmung und Ausschluss von Fuzzy-Einschlüssen Reguläre PHP-Ausdrücke: Exakte Übereinstimmung und Ausschluss von Fuzzy-Einschlüssen Feb 28, 2024 pm 01:03 PM

Reguläre PHP-Ausdrücke: Exakte Übereinstimmung und Ausschluss. Reguläre Fuzzy-Inklusion-Ausdrücke sind ein leistungsstarkes Text-Matching-Tool, das Programmierern bei der effizienten Suche, Ersetzung und Filterung bei der Textverarbeitung helfen kann. In PHP werden reguläre Ausdrücke auch häufig zur Zeichenfolgenverarbeitung und zum Datenabgleich verwendet. Dieser Artikel konzentriert sich auf die Durchführung von exakten Übereinstimmungen und den Ausschluss von Fuzzy-Inklusion-Operationen in PHP und veranschaulicht dies anhand spezifischer Codebeispiele. Exakte Übereinstimmung Exakte Übereinstimmung bedeutet, dass nur Zeichenfolgen abgeglichen werden, die die genaue Bedingung erfüllen, keine Variationen oder zusätzlichen Wörter.

Wie überprüfe ich das Passwort mithilfe eines regulären Ausdrucks in Go? Wie überprüfe ich das Passwort mithilfe eines regulären Ausdrucks in Go? Jun 02, 2024 pm 07:31 PM

Die Methode zur Verwendung regulärer Ausdrücke zur Überprüfung von Passwörtern in Go lautet wie folgt: Definieren Sie ein Muster für reguläre Ausdrücke, das die Mindestanforderungen für Passwörter erfüllt: mindestens 8 Zeichen, einschließlich Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen. Kompilieren Sie reguläre Ausdrucksmuster mit der MustCompile-Funktion aus dem Regexp-Paket. Verwenden Sie die MatchString-Methode, um zu testen, ob die Eingabezeichenfolge mit einem regulären Ausdrucksmuster übereinstimmt.

Was sind die Platzhalter für reguläre Ausdrücke? Was sind die Platzhalter für reguläre Ausdrücke? Nov 17, 2023 pm 01:40 PM

Zu den Platzhaltern für reguläre Ausdrücke gehören „.“, „*“, „+“, „?“, „^“, „$“, „[]“, „[^]“, „[a-z]“, „[A-Z]“. ,“[0-9]“,\d“,\D“,\w“,\W“,\s&quo

Filterung chinesischer Zeichen: PHP-Praxis für reguläre Ausdrücke Filterung chinesischer Zeichen: PHP-Praxis für reguläre Ausdrücke Mar 24, 2024 pm 04:48 PM

PHP ist eine weit verbreitete Programmiersprache, die besonders im Bereich der Webentwicklung beliebt ist. Im Prozess der Webentwicklung stoßen wir häufig auf die Notwendigkeit, die vom Benutzer eingegebenen Texte zu filtern und zu überprüfen, wobei die Zeichenfilterung ein sehr wichtiger Vorgang ist. In diesem Artikel wird erläutert, wie reguläre Ausdrücke in PHP zum Implementieren der Filterung chinesischer Zeichen verwendet werden, und es werden spezifische Codebeispiele aufgeführt. Zunächst müssen wir klarstellen, dass der Unicode-Bereich chinesischer Schriftzeichen von u4e00 bis u9fa5 reicht, d. h. alle chinesischen Schriftzeichen liegen in diesem Bereich.

See all articles