Regul?re Ausdrücke, auch regul?re Ausdrücke genannt. (Englisch: Regul?rer Ausdruck, im Code oft als Regex, Regexp oder RE abgekürzt), ein Konzept aus der Informatik. Regul?re Tabellen werden normalerweise verwendet, um Text abzurufen und zu ersetzen, der einem bestimmten Muster (Regel) entspricht.
Regul?rer Ausdruck ist eine logische Formel für Zeichenfolgenoperationen. Er verwendet einige vordefinierte spezifische Zeichen und Kombinationen dieser spezifischen Zeichen, um eine ?Regelzeichenfolge“ zu bilden, die zum Ausdrücken einer Filterlogik für Zeichenfolgen verwendet wird.
Viele Programmiersprachen unterstützen String-Operationen mit regul?ren Ausdrücken. Beispielsweise verfügt Perl über eine integrierte leistungsstarke Engine für regul?re Ausdrücke. Das Konzept der regul?ren Ausdrücke wurde ursprünglich durch Tool-Software unter Unix (wie sed und grep) popul?r gemacht. Regul?re Ausdrücke werden oft als ?regex“ abgekürzt, der Singular umfasst regexp, regex und der Plural umfasst regexps, regexes und regexen.
Das erste Beispiel für einen regul?ren Ausdruck!
Instanz
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)教程(php.sn)</title> </head> <body> <script> var str = "abc123def"; var patt1 = /[0-9]+/; document.write(str.match(patt1)); </script> </body> </html>
Instanz ausführen ?
Klicken Sie auf die Schaltfl?che ?Instanz ausführen“, um die Online-Instanz anzuzeigen
Tipp: Unser Tutorial zu regul?ren Ausdrücken hilft Ihnen dabei, das Wissen über regul?re Ausdrücke vom Anf?nger bis zum Fortgeschrittenen zu erlernen. Wenn Sie Fragen haben, besuchen Sie bitte die chinesische PHP-Website Regular Expression Community, um Ihre Fragen zu stellen, und begeisterte Internetnutzer werden sie für Sie beantworten.
Funktionen für regul?re Ausdrücke
Sehr flexibel, logisch und funktional;
kann schnell eine komplexe Steuerung erreichen Saiten auf ?u?erst einfache Weise.
Für diejenigen, die neu darin sind, ist es relativ unklar.
Da regul?re Ausdrücke haupts?chlich auf Text angewendet werden, werden sie in verschiedenen Texteditoren verwendet, vom berühmten Editor EditPlus bis hin zu Microsoft Word, Visual Studio usw. Gro?e Editoren k?nnen regul?re Ausdrücke verwenden Textinhalte zu verarbeiten.
Zweck
Gegeben ein regul?rer Ausdruck und eine andere Zeichenfolge, k?nnen wir den folgenden Zweck erreichen:
Gegebene Zeichen Ob die Zeichenfolge der Filterlogik des regul?ren Ausdrucks entspricht (genannt ?Matching“)
Wir k?nnen den gewünschten Teil aus der Zeichenfolge durch regul?re Ausdrücke abrufen.
Normale Engine
Normale Engine kann in zwei Hauptkategorien unterteilt werden:
Eine davon ist DFA,
Eine davon ist NFA.
Beide Motoren haben eine lange Geschichte (mittlerweile mehr als 20 Jahre) und es gibt viele Variationen dieser beiden Motoren! Daher vermeidet die Einführung von POSIX die weitere Generierung unn?tiger Varianten. Auf diese Weise werden die regul?ren Mainstream-Engines in drei Kategorien unterteilt: 1. DFA, 2. traditionelle NFA und 3. POSIX NFA.
DFA-Engines werden in linearer Zeit ausgeführt, da sie kein Backtracking erfordern (und daher nie dasselbe Zeichen zweimal testen). Die DFA-Engine stellt au?erdem sicher, dass die l?ngstm?gliche Zeichenfolge abgeglichen wird. Da die DFA-Engine jedoch nur einen begrenzten Status enth?lt, kann sie keine Muster mit Rückverweisen abgleichen, und da sie keine expliziten Erweiterungen erstellt, kann sie keine Unterausdrücke erfassen.
Herk?mmliche NFA-Engines führen einen sogenannten ?gierigen“ Match-Lookback-Algorithmus aus, der alle m?glichen Erweiterungen eines regul?ren Ausdrucks in einer bestimmten Reihenfolge testet und die erste übereinstimmung akzeptiert. Da herk?mmliches NFA eine spezifische Erweiterung eines regul?ren Ausdrucks erstellt, um eine erfolgreiche übereinstimmung zu erhalten, kann es sowohl Teilausdrucksübereinstimmungen als auch übereinstimmende Rückverweise erfassen. Aufgrund der Backtracking-Methode herk?mmlicher NFAs kann jedoch mehrmals auf genau denselben Status zugegriffen werden (sofern dieser über unterschiedliche Pfade erreicht wurde). Daher kann es im schlimmsten Fall zu einer sehr langsamen Ausführung kommen. Da die traditionelle NFA die erste übereinstimmung akzeptiert, die sie findet, kann es auch dazu führen, dass andere (m?glicherweise l?ngere) übereinstimmungen unentdeckt bleiben.
POSIX NFA-Engines ?hneln herk?mmlichen NFA-Engines, au?er dass sie so lange zurückverfolgen, bis sie sicherstellen k?nnen, dass sie die l?ngstm?gliche übereinstimmung gefunden haben. Daher ist die POSIX NFA-Engine langsamer als die herk?mmliche NFA-Engine, und wenn Sie POSIX NFA verwenden, m?chten Sie wahrscheinlich nicht die Reihenfolge der Lookback-Suchen ?ndern, um kürzere Match-Suchen anstelle l?ngerer Match-Suchen zu unterstützen.
Die Hauptprogramme, die die DFA-Engine verwenden, sind:
awk,egrep,flex,lex,MySQL,Procmail等;
Die Hauptprogramme, die die traditionelle NFA-Engine verwenden, sind:
GNU Emacs,Java,ergp,less,more,.NET語言,PCRE library,Perl,PHP,Python,Ruby,sed,vi;
Verwenden Sie POSIX Die Hauptprogramme der NFA-Engine sind:
mawk,Mortice Kern Systems’ utilities,GNU Emacs(使用時可以明確指定);
Es gibt auch Engines, die einen DFA/NFA-Hybrid verwenden:
GNU awk,GNU grep/egrep,Tcl。
Um den Unterschied zwischen NFA und DFA-Arbeit kurz zu erl?utern, wird ein Beispiel gegeben:
Zum Beispiel gibt es eine Zeichenfolge, dies ist Yansens Blog, und der regul?re Ausdruck ist /ya(msen|nsen|nsem)/ (Machen Sie sich keine Sorgen wegen des Ausdrucks, er dient nur zur Veranschaulichung des Arbeitsunterschieds zwischen den Engines.) NFA funktioniert wie folgt. Suchen Sie zun?chst nach y in der Zeichenfolge und ermitteln Sie dann, ob ein a folgt. Wenn nicht, prüfen Sie, ob darauf ein n folgt Der msen-Auswahlzweig wird zu diesem Zeitpunkt eliminiert.
Prüfen Sie dann weiter, ob s, e folgt, und testen Sie dann, ob es n ist, ist die übereinstimmung erfolgreich. Wenn nicht, testen Sie, ob es m ist. Warum m? Da NFA auf regul?ren Ausdrücken basiert und Zeichenfolgen wiederholt testet, kann es sein, dass dieselbe Zeichenfolge viele Male getestet wird!
Dies ist bei DFA nicht der Fall. DFA sucht darin beginnend bei t und findet y. Wenn bekannt ist, dass darauf ein a folgt, wird geprüft, ob der Ausdruck ein und dort hat ist zuf?llig ein hier. Dann folgt auf die Zeichenfolge a n und DFA testet die Ausdrücke nacheinander. Zu diesem Zeitpunkt erfüllt msen die Anforderungen nicht und wird eliminiert. nsen und nsem erfüllen die Anforderungen, und dann prüft DFA die Zeichenfolgen nacheinander. Wenn n in sen erkannt wird, erfüllt nur der nsen-Zweig die Anforderungen und die übereinstimmung ist erfolgreich!
Daraus ist ersichtlich, dass die beiden Engines auf v?llig unterschiedliche Weise arbeiten: Die eine (NFA) ist ausdrucksorientiert und die andere (DFA) ist textorientiert! Im Allgemeinen sucht die DFA-Engine schneller! Allerdings ist NFA ausdrucksorientiert und einfacher zu manipulieren, daher bevorzugen die meisten Programmierer NFA-Engines! Beide Engines haben ihre eigenen St?rken und die tats?chliche Zitierung h?ngt von Ihren Bedürfnissen und der von Ihnen verwendeten Sprache ab.
In diesem Tutorial-Handbuch zu regul?ren Ausdrücken behandelte Inhalte
Dieses Tutorial zu regul?ren Ausdrücken deckt alle grundlegenden und fortgeschrittenen Kenntnisse regul?rer Ausdrücke ab, einschlie?lich der Syntax regul?rer Ausdrücke, Metazeichen regul?rer Ausdrücke, Vorrang von Ausdrucksoperatoren regul?rer Ausdrücke und regul?rer Ausdrücke Regeln für den Ausdrucksabgleich und mehr.
Tipps: Jedes Kapitel dieses Tutorials enth?lt viele Beispiele für regul?re Ausdrücke. Sie k?nnen direkt auf die Schaltfl?che ?Beispiel ausführen“ klicken, um die Ergebnisse online anzuzeigen. Mithilfe dieser Beispiele lernen Sie, regul?re Ausdrücke besser zu verstehen.
Andere Referenzressourcen zum Lernen von regul?ren Ausdrücken
Zus?tzlich zur Wissenserweiterung auf der rechten Seite dieser Seite sind auch die folgenden Ressourcen für alle ausgew?hlt
Neuestes Kapitel
- 正則表達式 - 示例 2016-10-18
- 正則表達式 - 匹配規(guī)則 2016-10-18
- 正則表達式 - 運算符優(yōu)先級 2016-10-18
- 正則表達式 - 元字符 2016-10-18
- 正則表達式 - 語法 2016-10-18
- 正則表達式 - 簡介 2016-10-18
- 正則表達式 - 教程 2016-10-18
?hnliche Kurse
- Wissenssammlung über Computernetzwerke 2022-09-30
- Video-Tutorial zum Boolean Education HTTP-Protokoll 2022-04-14
- Video-Tutorial zu regul?ren Ausdrücken im Booleschen Bildungsbereich 2022-04-18
- Video-Tutorial zu booleschen p?dagogischen Designmustern 2022-04-21
- überblick über Computernetzwerke – Grundkenntnisse, die Programmierer beherrschen müssen 2021-11-22
- Ein unverzichtbares Tutorial für Programmierer – detaillierte Erkl?rung des HTTP-Protokolls 2021-11-19
- Eine einstündige umfassende Einführung in das HTTP-Protokoll – unerl?sslich für die Webentwicklung 2021-11-26
- Beherrschen Sie die Grundlagen des Webs in 90 Minuten (Netzwerkprotokoll | HTTP | Webserver) 2021-12-10