Ein regulärer Ausdruck ist ein wörtliches Muster, das aus gewöhnlichen Zeichen (wie Zeichen A bis Z) und Sonderzeichen (als Metacharacter genannt) besteht. Dieses Muster beschreibt einen oder mehrere Zeichenfolgen, die bei der Suche nach einem Textkörper abgestimmt sind. Der reguläre Ausdruck fungiert als Vorlage für ein Zeichenmuster mit der durchsuchten Zeichenfolge.
Hier sind einige Beispiele für reguläre Ausdrücke, denen Sie möglicherweise begegnen:
| Jscript | Vbscript | übereinstimmen |
|---|---|---|
| /^/[/t]*$/ | ^ /[ /t]*$ | Passen Sie eine leere Linie an. |
| // d {2}-/d {5}/ | /d {2}-/d {5} | Stellen Sie sicher, dass eine ID-Nummer aus einer 2-stelligen Zahl, einem Bindestrich und einer 5-stelligen Zahl besteht. |
| /<(.*)>.*<///1>/ | <(.*)>.*</// 1> | Passen Sie ein HTML -Tag an. |
Die folgende Tabelle ist eine vollständige Liste von Metacharactern und ihr Verhalten im Kontext regulärer Ausdrücke:
| Charakter | beschreiben |
|---|---|
| / | Markieren Sie den nächsten Charakter als spezielles Zeichen oder einen primitiven Charakter oder als Rückwärtsreferenz oder als Octal Escape -Zeichen. Zum Beispiel entspricht 'n' dem Charakter n. '/n' passt zu einem neuen Charakter. Die Sequenz '//' übereinstimmt /und /(Matches (. |
| ^ | Entspricht der Startposition der Eingabezeichenfolge. Wenn die Multiline -Eigenschaft des Regexp -Objekts festgelegt ist, stimmt ^ auch mit der Position nach '/n' oder '/r' überein. |
| $ | Entspricht der Endposition der Eingangszeichenfolge. Wenn die Multiline -Eigenschaft des Regexp -Objekts festgelegt ist, stimmt $ auch mit der Position vor '/n' oder '/r' überein. |
| * | Entspricht dem vorherigen Subtonpression Null oder mehrmals. Zum Beispiel kann Zo* Z und Zoo übereinstimmen. * ist äquivalent zu {0,}. |
| + | Entspricht dem vorherigen Subton -Druck einmal oder mehrmals. Zum Beispiel kann 'ZO+' ZO und Zoo übereinstimmen, aber nicht z. + ist äquivalent zu {1,}. |
| ? | Entspricht dem vorherigen Subtonpression Null oder einmal. Zum Beispiel (e)? ? Ist {0,1} gleichwertig. |
| { N } | N ist eine nicht negative Ganzzahl. Übereinstimmen die n -mal, die bestimmt werden. Zum Beispiel kann 'O {2}' in Bob nicht mit 'o' übereinstimmen, kann aber zwei Betriebssysteme in Lebensmitteln mithalten. |
| { N ,} | N ist eine nicht negative Ganzzahl. Mindestens n -mal passen. Zum Beispiel kann 'O {2,}' in Bob nicht mit 'O' übereinstimmen, kann aber mit allen Betriebssystemen in foooood übereinstimmen. 'o {1,}' entspricht 'o+'. 'o {0,}' entspricht 'o*'. |
| { n , m } | Sowohl m als auch n sind nicht negative ganze Zahlen, wobei n <= m . Passen Sie mindestens n -mal an und passen Sie bis zu M -Zeiten überein. Liu, o {1,3} wird mit den ersten drei Betriebssystemen in fooooood übereinstimmen. 'o {0,1}' entspricht 'o?'. Bitte beachten Sie, dass zwischen Kommas und zwei Zahlen keine Räume geben können. |
| ? | Das Matching-Muster ist nicht greedisch, wenn das Zeichen sofort von einem anderen Restriktionszeichen (*, +,?, { N }, { n ,}, { n , m }) folgt. Das Nicht-Greedy-Muster entspricht so wenigen Saiten wie möglich, während das standardmäßige gierige Muster so viele Saiten wie möglich entspricht. Zum Beispiel wird für die String OOOO 'O+?' Mit einem einzigen O übereinstimmen, und 'O+' übereinstimmt mit allen 'o'. |
| . | Übereinstimmen ein einzelnes Zeichen außer /n. Verwenden Sie ein Muster wie '[./n]', um alle Zeichen einschließlich '/n' zu entsprechen. |
| ( Muster ) | Match -Muster und dieses Match erhalten. Die erhaltenen Übereinstimmungen können aus der generierten Übereinstimmungssammlung unter Verwendung der Submatches -Sammlung in VBScript und mit dem Attribut $ 9 in JScript verwendet werden. Verwenden Sie, um Parenthäses Zeichen anzupassen, '/(' oder '/)'. |
| (?: Muster ) | Match -Muster , aber erhalten Sie nicht das Matching-Ergebnis, dh dies ist ein Nicht-Get-Match und wird nicht für die zukünftige Verwendung gespeichert. Dies ist nützlich, wenn sie verwenden oder Zeichen (|), um verschiedene Teile eines Musters zu kombinieren. Zum Beispiel ist 'Industrie (?: Y | ies) ein einfacherer Ausdruck als' Industry | Industries '. |
| (? = Muster ) | Pre-Check vorwärts, passen Sie die Suchzeichenfolge am Anfang eines Zeichens für Zeichenfolge an. Dies ist ein Nicht-Get-Match, das heißt, das Match muss nicht für eine spätere Verwendung abgerufen werden. Zum Beispiel kann 'Windows (? = 95 | 98 | nt | 2000)' Windows in Windows 2000 übereinstimmen, jedoch nicht in Windows 3.1. Die Vorabrechnung konsumiert keine Zeichen, dh nach dem Auftreten einer Übereinstimmung beginnt die Suche des nächsten Spiels unmittelbar nach dem letzten Spiel und nicht nach den Zeichen, die das Vorabfänger enthalten. |
| (?! Muster ) | Negative Lookahead entspricht der Suchzeichenfolge zu einem bestimmten Zeitpunkt, an dem eine Zeichenfolge nicht übereinstimmt. Dies ist ein Nicht-Get-Match, das heißt, das Match muss nicht für eine spätere Verwendung abgerufen werden. Zum Beispiel kann 'Windows (?! 95 | 98 | nt | 2000)' Windows in Windows 3.1 übereinstimmen, jedoch nicht in Windows in Windows 2000. Die Vorabfindung konsumiert keine Zeichen, dh nach dem Eintreten einer Übereinstimmung beginnt die nächste Spielsuche unmittelbar nach dem letzten Spiel, und nicht nach den Zeichen, die die Vorkamen enthalten |
| x | | Match x oder y . Zum Beispiel kann 'Z | Food' Z oder Food übereinstimmen. '(z | f) ood' passt zu Zood oder Food. |
| [ xyz ] | Charaktersammlung. Passen Sie zu einem beliebigen Charakter überein. Zum Beispiel kann '[ABC]' in einfach mit 'a' übereinstimmen. |
| [^ xyz ] | Eine Sammlung negativer Werte Zeichen. Passen Sie die nicht enthaltenen Zeichen an. Zum Beispiel kann '[^abc]' in einfach mit 'P' übereinstimmen. |
| [ AZ ] | Charakterbereich. Passen Sie ein beliebiges Zeichen im angegebenen Bereich an. Beispielsweise kann '[az]' alle alphabetischen Unterkünften im Bereich 'a' bis 'z' übereinstimmen. |
| [^ az ] | Negativer Wert Charakterbereich. Passen Sie alle willkürlichen Zeichen an, die nicht innerhalb des angegebenen Bereichs liegen. Zum Beispiel kann '[^az]' alle willkürlichen Zeichen übereinstimmen, die nicht im Bereich 'a' zu 'Z' liegen. |
| /B | Stimmen Sie eine Wortgrenze an, was die Position zwischen Wort und Raum bedeutet. Zum Beispiel kann 'ER/B' in nie mit 'er' übereinstimmen, aber nicht 'er' in Verb. |
| /B | Übereinstimmung mit Nicht-Wort-Grenzen. 'er/b' kann 'er' im Verb übereinstimmen, kann aber nicht mit 'er' in niemals mithalten. |
| /c x | Entspricht den durch x angegebenen Steuerzeichen. Zum Beispiel entspricht /cm mit einer Steuer-M- oder Wagenrendite. Der Wert von X muss einer von AZ oder AZ sein. Ansonsten behandeln Sie C als Original -C' -Charakter. |
| /D | Passen Sie einen numerischen Charakter an. Äquivalent zu [0-9]. |
| /D | Passen Sie einen nicht numerischen Charakter an. Äquivalent zu [^0-9]. |
| /F | Passen Sie eine Seitenpause an. Äquivalent zu /x0c und /cl. |
| /N | Passen Sie einen neuen Charakter an. Äquivalent zu /x0a und /cj. |
| /R | Passen Sie einen Kutschenrücklaufcharakter an. Äquivalent zu /x0d und /cm. |
| /S | Passen Sie alle Whitespace -Zeichen an, einschließlich Leerzeichen, Registerkarten, Seitenunterbrechungen usw. Äquivalent zu [/f/n/r/t/v]. |
| /S | Passen Sie alle Nicht-Whitespace-Charaktere an. Äquivalent zu [^/f/n/r/t/v]. |
| /T | Passen Sie einen Registerkartencharakter an. Äquivalent zu /x09 und /ci. |
| /v | Passen Sie eine vertikale Registerkarte an. Äquivalent zu /x0b und /ck. |
| /w | Passen Sie jedem Wortcharakter an, das einen Unterstrich enthält. Entspricht '[a-za-z0-9_]'. |
| /W | Passen Sie alle Nicht-Wort-Charaktere an. Äquivalent zu '[^a-za-z0-9_]' '. |
| /x n | Match N , wobei N ein hexadezimaler Fluchtwert ist. Der hexadezimale Fluchtwert muss die Länge von zwei Zahlen sein, die bestimmt werden. Zum Beispiel entspricht '/x41' A. '/x041' entspricht '/x04' & 1. Die ASCII -Codierung kann in regulären Ausdrücken verwendet werden. . |
| / num | Match Num , wobei Num eine positive Ganzzahl ist. Verweis auf die erhaltene Übereinstimmung. Zum Beispiel entspricht '(.)/1' zwei aufeinanderfolgende identische Zeichen. |
| / N | Identifiziert einen Oktal -Fluchtwert oder eine Rückwärtsreferenz. Wenn mindestens N vor / n Subexpressionen erhalten hat, ist n eine Rückwärtsreferenz. Andernfalls ist N ein Oktal-Escape-Wert, wenn n eine Oktalzahl (0-7) ist. |
| / nm | Identifiziert einen Oktal -Fluchtwert oder eine Rückwärtsreferenz. Wenn mindestens NM Subtexpressionen erhalten, sind mindestens NM vor / nm vor, NM ist eine Rückwärtsreferenz. Wenn es mindestens N -Fetchen vor / nm gibt, ist n eine Rückwärtsreferenz, gefolgt von der wörtlichen m . Wenn keine der vorherigen Bedingungen erfüllt ist und sowohl N als auch M Oktalnummern (0-7) sind, stimmt / nm mit dem Octal Escape-Wert nm überein. |
| / nml | Wenn n eine Oktalzahl (0-3) ist und M und L beide Oktalnummern (0-7) sind, wird der Oktal-Escape-Wert NML abgestimmt. |
| /u n | Match N , wobei N ein Unicode -Zeichen ist, das durch vier hexadezimale Ziffern dargestellt wird. Zum Beispiel entspricht /U00A9 mit dem Urheberrechtssymbol (?). |
Nach dem Erstellen eines regulären Ausdrucks können Sie wie einen mathematischen Ausdruck bewerten, dh Sie können von links nach rechts und in einer Prioritätsreihenfolge bewerten.
Die folgende Tabelle listet die Prioritätsreihenfolge verschiedener regulärer Ausdrucksbetreiber von höchster Priorität auf die niedrigste Priorität auf:
| Operator | beschreiben |
|---|---|
| / | Fluchtsymbol |
| (), (? :), (? =), [] | Zahnspange und Quadratklammern |
| *, +,?, {n}, {n,}, {n, m} | Qualifikation |
| ^, $, / Anymetacharacter | Position und Ordnung |
| | | Oder arbeiten |