Freigeben über


TR1 Regular Expressions

In diesem Thema werden die Grammatiken der verschiedenen Module für reguläre Ausdrücke, die TR1 unterstützt.

In diesem Thema

  • Regulärer Ausdruck-Grammatik

  • Grammatik-Zusammenfassung

  • Semantische Details

  • Suche nach Übereinstimmungen suchen.

  • Formatcodes

Regulärer Ausdruck-Grammatik

Bb982727.collapse_all(de-de,VS.110).gifElement

Ein Element kann eine der folgenden Ursachen haben:

  • Ein normales Zeichen, das das gleiche Zeichen in der Zielversion Sequenz entspricht.

  • Ein Platzhalterzeichen „.“ Das entspricht jedem Zeichen in der Zeichenfolge Ziel einen Zeilenumbruch Ausnahme ab.

  • Ein Klammerausdruck der Form „[expr]“, das ein Zeichen entspricht, oder ein Ziel in der Sortierreihenfolge Sequenz, die auch im Satz wird durch den Ausdruck exprdefiniert, oder der Form „[^“]expr, das ein Zeichen oder ein Ziel in der Sortierreihenfolge Zeichenfolge entspricht, die nicht in der Menge definiert ist, vom Ausdruck expr.

    Der Ausdruck expr kann eine beliebige Kombination der folgenden Elemente enthalten:

    • Ein einzelnes Zeichen.Fügt dem Satz hinzugefügt, dass Zeichen durch exprdefiniert ist.

    • Ein Zeichenbereich der Form „ch1-ch2“.Fügt die Zeichen hinzu, die von Werten in einem geschlossenen Bereichs, ch2] [ch1festzulegende dargestellt werden, der von exprdefiniert ist.

    • Eine Zeichenklasse der Form „[:name:]“.Fügt die Zeichen aus der angegebenen Klasse dem Satz hinzugefügt, der durch exprdefiniert ist.

    • Eine Äquivalenz class Form „[=elt=]“.Fügt die sortierenden Elemente hinzu, die zu dem Satz elt entsprechen, der von exprdefiniert ist.

    • Ein sortierendes Symbol der Form „[.elt.]“.Fügt das Element elt Sortierungen der Gruppe hinzu, der durch exprdefiniert ist.

  • Ein Anker.Verankern Sie „^“ mit dem Start des Ziels, sequence Verankern Sie „$“ Übereinstimmungen für das Ende der Sequenz.

Eine Erfassungsgruppe der Form „()“ oder „ Teilausdrücke (\ \)“ in BRETeilausdrücke ausgewertet und in grep, das die Reihenfolge der Zeichen in der Zeichenfolge Ziel übereinstimmt, die durch das Trennzeichen zwischen dem Muster verglichen wird.

  • Ein Identitätsescapezeichen der Form „\“k, das das Zeichen in der Zeichenfolge übereinstimmt k Ziel.

Beispiele:

  • „a“ entspricht ab, die Ziel sequence „a“ nicht jedoch das Ziel sequenzen „B“, „b“ oder „c“ ab.

  • „.“ gleicht alle Zielsequenzen „a“, „B“, „b“ und „c“ ab.

  • „[BZ]“ stimmt die Ziel sequenzen „b“ und „c“ nicht jedoch das Ziel sequenzen „a“ und „b“ ab.

  • „[: niedriger:]“ stimmt die Ziel sequenzen „a“ und“ b „, „c“ nicht jedoch das Ziel sequence „B“ ab.

  • „(A) stimmt die Zeichenfolge“ Ziel „a“ ab und ordnet 1 mit der Erfassungsgruppe Untersequenz „a“, nicht jedoch das Ziel sequenzen „B“, „b“ oder „c“ ab.

In ECMAScript, in BREund grepkann ein Element ein Rückverweis der Form „\“ddwerden, wo dd einen Dezimalwert N darstellt, der eine Folge von Zeichen in der Zeichenfolge Ziel übereinstimmt, die dieselbe wie die Folge von Zeichen, die durch die n-te Erfassungsgruppezugeordnet ist.Beispiel: „(A) \ 1 " entspricht den Ziel sequence „aa“, da die erste Erfassungsgruppe () und nur die ursprüngliche Sequenz von „a“ entspricht und anschließend \ 1 entspricht die endgültige Sequenz von „a“.

In ECMAScriptkann ein Element auch eine der folgenden Ursachen haben:

  • Eine Nicht Aufzeichnung Gruppe der Form „(?: Teilausdruck )“.Entspricht der Sequenz von Zeichen in der Zeichenfolge Ziels ab, die durch das Trennzeichen zwischen dem Muster verglichen wird.

  • Ein eingeschränkte Dateiformat-Escapezeichen der Form „\ f“, „\ n“, „\ r“, „\ t“ oder „\ v“.Diese stimmen einen Seitenvorschub, einen Zeilenumbruch, einen Wagenrücklauf, ein Horizontaltabulatorzeichen und eine vertikale bzw. die Registerkarte Ziel in der Sequenz ab.

  • Eine positive Assertion der Form „(? = Teilausdruck )“.Entspricht der Sequenz von Zeichen in der Zeichenfolge Ziel ab, die durch das Trennzeichen zwischen Muster gefunden wurde, ändert jedoch keine Übereinstimmungen Ziel Position in der Sequenz.

  • Eine negative Assertion der Form „(?!Teilausdruck )“.Entspricht einer beliebigen Reihenfolge der Zeichen in der Zeichenfolge Ziel nicht das Trennzeichen zwischen dem Muster übereinstimmt, ab und ändert nicht die Position in der Sequenz auf Übereinstimmungen.

  • Eine hexadezimale Escapesequenz „\ xhhFormular aus.“Entspricht einem der Zeichen in der Zeichenfolge Ziels ab, die durch die zwei Ziffern hhdargestellt wird.

  • Eine Unicode-Escapesequenz der Form „\ uhhhh“.Entspricht einem der Zeichen in der Zeichenfolge Ziel ab, die von der vier Ziffern hhhhdargestellt wird.

  • Eine Steuerelements escapesequenz der Form „\ ck“.Entspricht dem Steuerzeichen ab, das durch das Zeichen kbenannt ist.

  • Eine Wortgrenzen assertion der Form „\ b“.Übereinstimmungen, wenn die aktuelle Position in der Sequenz Ziel direkt hinter einer Wortgrenzeist.

  • Eine negative Wortgrenzen assertion der Form „\ b“.Übereinstimmungen, wenn die aktuelle Position in der Sequenz Ziel nicht sofort nach einer Wortgrenzeist.

  • Ein DSW-Escapezeichen der Form „\ d“, „\ \ " D“, „s“, „\ n“, „\ w“, „\ W“.Gibt einen Kurznamen für eine Zeichenklasse angegeben.

Beispiele:

  • „(?: A) stimmt die Zeichenfolge“ Ziel „a“, sondern „(?: A) \ 1 " ist ungültig, weil keine Erfassungsgruppe. 1.

  • (? „=a)“ das Ziel stimmt die Zeichenfolge „a“ ab.Die positive Assertion mit der ursprünglichen Sequenz von „a“ in der Zeichenfolge ab und der endgültige Ziel „a“ im regulären Ausdruck entspricht der ursprünglichen Sequenz von „a“ in der Zielversion Sequenz ab.

  • ! (? „A)“ stimmt nicht mit der Zielversion sequence „a“ ab.

  • „a b \“. a~ Ziel stimmt die Zeichenfolge“ „, nicht jedoch das Ziel sequence „ab“ ab.

  • „a b \ Ziel stimmt die Zeichenfolge“.“ AB „, nicht jedoch die a~ sequence „Ziel“ ab.

In awkkann ein Element auch eine der folgenden Ursachen haben:

  • Ein Dateiformat-Escapezeichen der Form „\ \“, „\ \“, „b“, „\ f“, „\ n“, „\ r“, „\ t“ oder „\ v“.Diese stimmen mit einem umgekehrten Schrägstrich ab, warnen, stellen, Seitenvorschub, Horizontaltabulatorzeichen Wagenrücklauf, Zeilenvorschub und vertikale bzw. die Registerkarte Ziel in der Sequenz zurück.

  • Eine oktale Escapesequenz der Form „\ooo“.Entspricht einem der Zeichen in der Zeichenfolge Ziel ab, deren Darstellung der Wert ist, der durch die ein, zwei oder drei dem oktalen Zahlen ooodargestellt wird.

Bb982727.collapse_all(de-de,VS.110).gifWiederholen

Jedes Element anderes Ergebnis als eine positive Assertion, eine negative Assertionoder einen Anker kann aus einer Anzahl der Wiederholen folgen.Die häufigste Art der Anzahl der Wiederholen weist das Format „{min,max}“ oder „\ {min,max\}“ in BRE und grepan.Ein Element, das aus diesem Format der Anzahl entspricht mindestens Wiederholen aufeinander folgende Vorkommen min folgen und nicht mehrere aufeinander folgende Vorkommen max einer Sequenz, die das Element entspricht.Beispielsweise „a {2,3}“ entspricht den Ziel sequence „aa“ und „aaa“ sequence Ziel, aber nicht die Ziel sequence „a“ oder „aaaa“ sequence Ziels ab.

Eine Anzahl Wiederholen kann auch eines der folgenden Formen annehmen:

  • „{„oder“}minmin\ {\}“ in BRE und grep.Entspricht „{min,min}“.

  • min„{“ und „}, {\min\}“ in BRE und grep.Entspricht „{min, unbegrenzt}“.

  • "*".Entspricht „{0}“. unbegrenztes

Beispiele:

  • „a {2}“ entspricht den Ziel sequence „aa“, aber nicht die Ziel sequence „a“ oder „aaa“ sequence Ziels ab.

  • „a {2,}“ entspricht den Ziel sequence „aa“, „aaa“ sequence, die auf ab usw., nicht jedoch die Ziel sequence „a“ ab.

  • „a*“ entspricht das Ziel sequence "", die Ziel sequence „a“, die Ziel sequence „aa“ usw.) ab.

Für alle Grammatiken außer BRE und grep, kann eine Anzahl Wiederholen eines der folgenden Formen annehmen auch:

  • „?“.Entspricht „{0,1}“.

  • „+“.Entspricht „{1}“. unbegrenztes

Beispiele:

  • „a“? stimmt mit der Zeichenfolge "" und Ziel des Ziels sequence „a“, aber nicht die Ziel sequence „aa“ ab.

  • „Ziel“ a+ stimmt die Zeichenfolge „a“, die Ziel sequence „aa“ usw., aber nicht das Ziel sequence "" ab.

In ECMAScriptkönnen alle Formen der Anzahl von Zeichen gefolgt werden Wiederholen „? “ mit einer nicht gieriges Wiederholungfestlegt.

Bb982727.collapse_all(de-de,VS.110).gifVerkettung

Elemente des regulären Ausdrucks, mit oder ohne anzahlen Wiederholenkönnen verkettet werden, um längere reguläre Ausdrücke zu bilden.Der resultierende Ausdruck entspricht eine Ziel Sequenz ab, die eine Verkettung der Sequenzen ist, die von den einzelnen Elementen zugeordnet sind.Beispiel: „b " a {2,3}“ entspricht den aab sequence „Ziel“ und“ sequence „aaab Ziele, nicht jedoch das Ziel sequence „AB“ oder“ sequence „Ziel aaaab ab.

Bb982727.collapse_all(de-de,VS.110).gifAlternierung

In allen Grammatiken des regulären Ausdrucks außer BRE und grep, kann ein verketteter regulärer Ausdruck aus dem Zeichen „folgen|“ und ein anderer verketteter regulärer Ausdruck.Jede Zahl verkettete reguläre Ausdrücke kann auf diese Weise kombiniert werden.Der resultierende Ausdruck entspricht jede Ziel Sequenz ab, die einen oder mehrere der verketteten reguläre Ausdrücke übereinstimmt.

Wenn mehrere reguläre Ausdrücke der verketteten Zeichenfolge übereinstimmt, wählt das Ziel der erste ECMAScript der verketteten regulären Ausdrücke aus, der die Sequenz als Übereinstimmung (ersten Übereinstimmung) übereinstimmt. Die anderen Grammatiken für reguläre Ausdrücke wählen Sie das aus, das die längste Übereinstimmungerzielt wird.Beispiel: „AB|CD“ Ziel stimmt die Zeichenfolge „ab“ und Ziel“ sequence „CD, nicht jedoch die abd sequence „Ziel“ oder“ sequence „Ziel acd ab.

In grep und egrepkann ein Zeilenumbruchzeichen („\ n ") verwendet werden, um Alternierungen zu trennen.

Bb982727.collapse_all(de-de,VS.110).gifTeilausdruck

In BRE und grepist ein Teilausdruck eine Verkettung aus.In den anderen Grammatiken des regulären Ausdrucks ist ein Teilausdruck eine Alternierung.

Grammatik-Zusammenfassung

In der folgenden Tabelle sind die Funktionen aufgeführt, die in verschiedenen Grammatiken des regulären Ausdrucks verfügbar sind, die von TR1 bereitgestellt werden:

Element

BRE

ERE

ECMA

Grep

egrep

awk

Alternierung mithilfe von „|“

+

+

+

+

Alternierung mit „\ n“

+

+

Anker

+

+

+

+

+

+

Rückverweis

+

+

+

Klammerausdruck

+

+

+

+

+

+

verwendende Erfassungsgruppe „()“

+

+

+

+

Erfassungsgruppe, die „\ (\)“

+

+

Steuerelements escapesequenz

+

DSW-Escapezeichen

+

Dateiformat-Escapezeichen

+

+

hexadezimale Escapesequenz

+

Identitätsescapezeichen

+

+

+

+

+

+

Assert negative

+

assertion Wortgrenzen negative

+

NichtAufzeichnung Gruppe

+

Wiederholen nicht gierige

+

oktale Escapesequenz

+

normales Zeichen

+

+

+

+

+

+

Assert positive

+

Wiederholung mit „{}“

+

+

+

+

Wiederholung mit „\ {\}“

+

+

Wiederholung mit „*“

+

+

+

+

+

+

Wiederholung mit „?“ und „+“

+

+

+

+

Unicode-Escapesequenz

+

Platzhalterzeichen

+

+

+

+

+

+

Wortgrenzenassertion

+

Semantische Details

Bb982727.collapse_all(de-de,VS.110).gifAnker

Ein Anker stimmt mit einer Position in der Zielzeichenfolge, kein Zeichen ab.Ein „^“ entspricht den Anfang der Zielzeichenfolge ab, und ein „$“ entspricht das Ende der Zielzeichenfolge ab.

Bb982727.collapse_all(de-de,VS.110).gifRückverweis

Ein Rückverweis ist ein umgekehrter Schrägstrich, der von einem Dezimalwert N folgt.Sie entspricht den Inhalt der N-ten Erfassungsgruppeab.Der Wert von N darf nicht mehr als die Anzahl von Erfassungsgruppen sein, die dem Rückverweis stehen.In BRE und grepwird der Wert N von der Dezimalstelle bestimmt, die dem umgekehrten Schrägstrich.In ECMAScriptwird der Wert N von allen Dezimalstellen bestimmt, die sofort nach dem umgekehrten Schrägstrich.Daher werden in BRE und grep, ist der Wert N nie mehr als 9, selbst wenn der reguläre Ausdruck mehr als neun Erfassungsgruppen enthält.In ECMAScriptist der Wert N unendlich.

Beispiele:

  • ((„a+) (b+))(c+) \ 3 " entspricht den aabbbcbbb sequence „Ziel“ ab.Rückverweis „\ 3 " entspricht den Text in der dritten Erfassungsgruppe. h b+ („“) ab.Sie entspricht nicht der aabbbcbb sequence „Ziel“ ab.

  • „(A) \ 2 " ist ungültig.

  • b „((((((((((A))))))))))\ 10 " in unterschiedliche Bedeutungen BRE und ECMAScript.In BRE ist der Rückverweis „\ 1".Der Rückverweis entspricht den Inhalt der ersten Erfassungsgruppe (das heißt, die mit „b“ und endet mit dem letzten ")“ beginnt und vor dem Rückverweis stammt) ab, und die endgültige „0 " entspricht das normale Zeichen „0 ".In ECMAScriptist der Rückverweis „\ 10".Es spielt die Erfassungsgruppe zehnte d. h. die innerste aus.

Bb982727.collapse_all(de-de,VS.110).gifKlammer-Ausdruck

Ein Klammerausdruck definiert eine Reihe von Zeichen und Sortierenvon Elementen.Wenn der Klammerausdruck mit dem Zeichen „^“ beginnt der Vergleich erfolgreich, wenn keine Elemente in dem festgelegten das aktuelle Ziel Zeichen in der Zeichenfolge übereinstimmen.Andernfalls liegt die Entsprechung eines der Elemente ggf. mit den Satz von Zeichen entspricht das aktuelle Ziel in der Sequenz.

Der Satz von Zeichen kann definiert werden, indem jede Kombination von einzelnen Zeichen, Zeichenbereichen, Zeichenklassen, Äquivalenz Klassenund Sortieren von Symbolenauflistet.

Bb982727.collapse_all(de-de,VS.110).gifErfassungsgruppe

Markierungen eine Erfassungsgruppe seinen Inhalt als Einheit in der Grammatik und den Bezeichnungen für reguläre Ausdrücke der Zieltext, der seinen Inhalt übereinstimmt.Die Bezeichnung, die den einzelnen Erfassungsgruppe zugeordnet ist, ist eine Zahl, die bestimmt wird, indem Sie die öffnende Klammer zählt, die Erfassungsgruppen bis einschließlich der öffnenden Klammer markieren, die die aktuelle Erfassungsgruppe markiert.In dieser Implementierung wird die maximale Anzahl von Erfassungsgruppen 31.

Beispiele:

  • „ab+“ stimmt die Ziel“ sequence „abb, nicht jedoch die abab sequence „Ziel“ ab.

  • AB („+“) stimmt nicht mit der abb sequence „Ziel“, aber die Übereinstimmungen die abab sequence „Ziel“ ab.

  • ((„a+) (b+))(c+)“ sequence „Ziel stimmt mit der aabbbc“ und „Untersequenz 1 mit der Erfassungsgruppe aabbb“ Erfassungsgruppe 2 mit der Erfassungsgruppe Untersequenz „aa“,“ bbb „mit 3 und 4 mit der Erfassungsgruppe Untersequenz „c“ zu.

Bb982727.collapse_all(de-de,VS.110).gifZeichenklasse

Eine Zeichenklasse in einem Klammerausdruck fügt alle Zeichen in der benannten Klasse dem Zeichensatz hinzu, der durch den Klammerausdruck definiert ist.So erstellen Sie eine Zeichenklasse erstellen, verwenden Sie „[: “ gefolgt vom Namen der Klasse, gefolgt von „.“]:Intern werden Namen von Zeichenklassen erkannt, indem id = traits.lookup_classnameaufruft.Ein Zeichen ch gehört eine solche Klasse, wenn traits.isctype(ch, id) true zurückgibt.Die Standardeinstellung regex_traits Vorlage unterstützt die Klassennamen in der folgenden Tabelle.

Klassenname

Beschreibung

„alnum“

Ziffern und Großbuchstaben, Kleinbuchstaben

„Alpha“

Groß- und Kleinbuchstaben

„Bereich“

Leerzeichen oder Tabstopps

„Steuerung“

die Dateiformat-Escapezeichen

„Zahl“

Ziffern

„Diagramm“

Großbuchstaben, Kleinbuchstaben, Ziffern und Satzzeichen

„niedriger“

Kleinbuchstaben

„Drucken“

Großbuchstaben, Kleinbuchstaben, Ziffern und Leerzeichen, Satzzeichen

„punct“

Satzzeichen

„Bereich“

Leerzeichen

Ober- „

Großbuchstaben

„xdigit“

Stellen Sie unter „a“, „b“, „c“, „d“, „e“, „f“, „A“, „B“, „C“, „D“, „E“, „F“

"d"

Wie Ziffer

"s"

Wie Leerzeichen

"w"

Wie alnum

Bb982727.collapse_all(de-de,VS.110).gifZeichenbereich

Ein Zeichenbereich in einem Klammerausdruck fügt dem Bereich alle Zeichen im Zeichensatz hinzu, der durch den Klammerausdruck definiert ist.Um einen Zeichenbereich zu erstellen, legen Sie das Zeichen „-“ zwischen dem ersten und letzten Zeichen im Bereich.Auf diese Weise wird ein Rollback für alle Sätze in das Zeichen ein numerischer Wert, der größer als oder gleich dem numerischen Wert des ersten Zeichens und kleiner als oder gleich dem numerischen Wert des letzten Zeichens haben.Beachten Sie, dass dieser Satz hinzugefügte Zeichen aus der plattformspezifische Darstellung von Zeichen abhängt.Wenn das Zeichen „-“ tritt am Anfang oder das Ende eines Klammerausdrucks ein, oder das erste oder das letzte Zeichen des Zeichenbereichs, bietet sich dies dar.

Beispiele:

  • „[0-7]“ stellt den Satz von Zeichen dar {„0", „1", „2", „3", „4", „5", „6", „7"}.Es stimmt die Ziel sequenzen „0 ", „1 " usw., aber nicht „a“ ab.

  • Auf Systemen, die die ASCII-Zeichencodierung verwenden, „[HK]“ stellt den Satz von Zeichen dar {„h“, „I“, „J“, „k“}.Sie entspricht den Ziel sequenzen „h“, „I“ usw. x8A \ „nicht aber“ oder „0 ".

  • Auf Systemen, die die EBCDIC-Zeichencodierung verwenden, „[HK]“ stellt den Satz von Zeichen dar {„h“, „I“, „\ \ „,“ x8A x8B“, „\ \ „,“ x8C x8D“, „\ \ „,“ x8E x8F“, „\ x90“, „J“, „k“} („h“ codiert wird, während 0x88 und „k“ als 0x92 codiert ist).Es stimmt die Ziel sequenzen „h“, „I“, „\ x8A“ usw., aber nicht „0 ".

  • „[- 0-24]“ stellt den Satz von Zeichen dar {„-“, „0", „1", „2", „4"}.

  • „[0-2-]“ stellt den Satz von Zeichen dar {„0", „1", „2", „-“}.

  • Auf Systemen, die die ASCII-Zeichencodierung [+ „verwenden. --]“ stellt den Satz von Zeichen dar {„+“, „-“, „-“}.

Wenn jedoch gebietsschemaabhängige Bereiche verwendet werden, werden die Zeichen in einem Bereich durch die Regeln Sortierreihenfolge für das Gebietsschema bestimmt.Zeichen, die nach dem ersten Zeichen in der Definition des Bereichs sortieren und bevor das letzte Zeichen in der Definition des Bereichs in der Gruppe sind.Die beiden Endzeichen sind auch in der Gruppe.

Bb982727.collapse_all(de-de,VS.110).gifSortieren von Elementen

Ein sortierendes Element ist eine Sequenz mit mehreren Zeichen, die als einzelnes Zeichen behandelt wird.

Bb982727.collapse_all(de-de,VS.110).gifSymbol sortieren

Ein sortierendes Symbol in einem Klammerausdruck fügt ein sortierendes Element der Gruppe hinzu, der durch den Klammerausdruck definiert ist.So legen Sie ein Symbol sortierendes erstellen, verwenden Sie „[“. worauf sortierenden Element gefolgt von „.]“.

Bb982727.collapse_all(de-de,VS.110).gifSteuerelements escapesequenz

Eine Steuerelements escapesequenz ist ein umgekehrter Schrägstrich gefolgt vom Buchstaben „c“ gefolgt von einem der Buchstaben“ bis „z“ oder „A“ durch „Z“.Sie entspricht dem ASCII-Steuerzeichen ab, der durch diesen Buchstaben benannt ist.Beispielsweise entspricht „\ \ " sequence „Ziel“ Ci x09“ überein, da <ctrl-i> der Wert 0x09 verfügt.

Bb982727.collapse_all(de-de,VS.110).gifDSW-Escapezeichen

Ein DSW-Escapezeichen ist ein Kurzname für eine Zeichenklasse, wie in der folgenden Tabelle dargestellt.

Escapesequenz

Entspricht benannte Class

Class benannte Standard

„\ " d“

„[[: D:“]]

„[[: Ziffer:“]]

„\ " D“

„[^ [: D:“]]

„[^ [: Ziffer:“]]

\ s“. „

„[[: s:“]]

„[[: : space“]]

„\ n“

„[^ [: s:“]]

„[^ [: : space“]]

„\ w“

„[[: :]]“ w

„[a-zA-Z0-9_] * „

„\ W“

„[^ [: :]]“ w

[^a-zA-Z0-9_] „* „

*ASCII Zeichensatz

Bb982727.collapse_all(de-de,VS.110).gifÄquivalenz class

Eine Äquivalenz - Klasse in einem Klammerausdruck fügt alle Zeichen und Sortieren von Elementen hinzu, die zu sortierenden Elemente in der klassendefinition Äquivalenz der Gruppe entsprechen, der von den Klammerausdruck definiert ist.Um eine Übereinstimmung - Klasse erstellen, verwenden Sie „[=“ gefolgt von einem sortierenden Element gefolgt von „=]“.Intern sind zwei Sortieren von Elementen elt1 und elt2 wenn traits.transform_primary(elt1.begin(), elt1.end()) == traits.transform_primary(elt2.begin(), elt2.end()).

Bb982727.collapse_all(de-de,VS.110).gifDateiformat-Escapezeichen

Ein Dateiformat-Escapezeichen besteht aus den üblichen Programmiersprachen C-Escapezeichen sequenzen, „\ \“, „\ \“, „b“, „\ f“, „\ n“, „\ r“, „\ t“, „\ v“. Diese die üblichen Bedeutungen haben. h. umgekehrter Schrägstrich, Warnung, Rücktastenzeichen, Seitenvorschub, Horizontaltabulatorzeichen Wagenrücklauf, Zeilenvorschub und vertikale Tab.In ECMAScript„\“ und „\ b“ nicht zulässig.(„\ \“ ist zulässig, aber es ist ein Identitätsescapezeichen, kein Dateiformat-Escapezeichen).

Bb982727.collapse_all(de-de,VS.110).gifHexadezimale Escapezeichen

Eine hexadezimale Escapesequenz ist ein umgekehrter Schrägstrich des Buchstabens „x“ gefolgt von zwei Ziffern (0-9a-fA-F) folgt.Sie entspricht einem Zeichen in der Zeichenfolge Ziel ab, die den Wert enthält, der durch die zwei Stellen angegeben wird.Beispielsweise entspricht „\ x41 sequence „Ziel“ A“ wenn ASCII-Zeichencodierung verwendet wird.

Bb982727.collapse_all(de-de,VS.110).gifIdentitätsescapezeichen

Ein Identitätsescapezeichen ist ein umgekehrter Schrägstrich, der aus einem einzelnen Zeichen folgen.Es entspricht dieses Zeichen ab.Sie ist erforderlich, wenn das Zeichen eine besondere Bedeutung hat. indem das Identitätsescapezeichen verwendet wird, wird die besondere Bedeutung entfernt.Beispiele:

  • „a*“ Ziel stimmt die Zeichenfolge „aaa“, nicht jedoch das Ziel sequence „a*“.

  • „a \ *“ entspricht nicht der Ziel sequence „aaa“, aber die Übereinstimmungen das Ziel sequence „a*“.

Die Gruppe von Zeichen, die in einem Identitätsescapezeichen zulässig sind, hängt von der Grammatik für reguläre Ausdrücke, wie in der folgenden Tabelle dargestellt.

Grammatik

Zulässige Identitätsescapezeichen

BRE, grep

{ '(', ')', '{', '}', '.', '[', '\', '*', '^', '$' }

ERE, egre

{ '(', ')', '{', '.', '[', '\', '*', '^', '$', '+', '?', '|' }

awk

ERE “ {„und“}“, „/

ECMAScript

Alle Zeichen zählen die aus, die Teil eines Bezeichners sein können.In der Regel wird diese Buchstaben, Ziffern, „$“, „_“ und Unicode-Escapesequenzen.Weitere Informationen finden Sie in der ECMAScript-Sprachen-Spezifikation.

Bb982727.collapse_all(de-de,VS.110).gifEinzelnes Zeichen

Ein einzelnes Zeichen in einem Klammerausdruck fügt dieses Zeichen im Zeichensatz hinzu, der durch den Klammerausdruck definiert ist.Überall in einem Klammerausdruck, es sei denn, stellt sich am Anfang eines „^“ dar.

Beispiele:

  • „[ABC]“ stimmt die Ziel sequenzen „a“ und“ b „, „c“, aber nicht die Sequenz „d“ ab.

  • „[]“ ^abc Ziel stimmt mit der Zeichenfolge „D“, aber nicht das Ziel sequenzen „a“ und „b“ oder „c“ ab.

  • „[]“ a^bc sequenzen Ziel stimmt mit der „a“ und „b“, „c“ und „^“, aber nicht das Ziel sequence „d“ ab.

In allen Grammatiken für reguläre Ausdrücke schließen Sie ECMAScript, wenn „]“ das erste Zeichen, das dem Start- „[“ folgt, oder es handelt sich um das erste Zeichen, das einen ursprünglichen „^“ folgt, es selbst darstellt.

Beispiele:

  • „[]“ ist ungültig, weil kein „]“ gibt, den Klammerausdruck zu beenden.

  • „ABC] [] entspricht“ sequenzen Ziel „a“ und „b“, „c“ und „]“, aber nicht das Ziel sequence „d“ ab.

  • [^] entspricht „abc]“ sequence „d“ für, aber nicht die Ziel sequenzen „a“ und „b“, „c“ oder „]“.

In ECMAScriptVerwenden Sie „\]“, wenn das Zeichen „]“) in einem Klammerausdruck dar.

Beispiele:

  • „[]“ stimmt die Sequenz von „a“ weil der Klammerausdruck leer ist.

  • „ABC] [\] entspricht“ sequenzen Ziel „a“, „b“, „c“ und „]“ zurück, nicht jedoch das Ziel sequence „d“ ab.

Bb982727.collapse_all(de-de,VS.110).gifNegative Assertion

Eine negative Assertion stimmt jedoch den gesamten Inhalts ab.Es werden keine Zeichen in der Zeichenfolge Ziel.Beispiel: „(?! AA) (a*“) Ziel stimmt die Zeichenfolge „a“ und 1 mit der Erfassungsgruppe Untersequenz „a“ zu.Das Ziel stimmt nicht mit der Zeichenfolge „aa“ und „aaa“ sequence, die auf ab.

Bb982727.collapse_all(de-de,VS.110).gifNegative Wortgrenzen-Assertion

Eine negative Wortgrenzen assertion stimmt ab, wenn die aktuelle Position in der Zielzeichenfolge nicht sofort nach einer Wortgrenzeist.

Bb982727.collapse_all(de-de,VS.110).gifNicht-Aufzeichnung Gruppe

Markierungen keiner Gruppe sein Inhalt als Einheit der Aufzeichnung in der Grammatik für reguläre Ausdrücke bezeichnet, jedoch nicht den Zieltext.Beispiel: „(A) (?: b) * (C) entspricht den Zieltext „und“ abbc 1 mit der Erfassungsgruppe Untersequenz „a“ und 2 mit der Erfassungsgruppe Untersequenz „c“ zu.

Bb982727.collapse_all(de-de,VS.110).gifNicht gierige Wiederholung

Eine nicht gieriges Wiederholung nutzt die kürzeste Untersequenz der Ziel sequence, die dem Muster übereinstimmt.Eine gierige Wiederholung nutzt die längste.Beispiel: „(a+) (a*b) stimmt mit der“ sequence „Ziel“ aaab ab.Wenn ein nicht gieriges Wiederholung verwendet wird, ordnet sie der Erfassungsgruppe 1 mit „a“ Untersequenz Ziel am Anfang der Sequenz und 2 mit der Erfassungsgruppe Untersequenz aab „Ziel“ am Ende der Sequenz an.Wenn eine gierige Übereinstimmung verwendet wird, ordnet sie der Erfassungsgruppe 1 Untersequenz „aaa“ und 2 mit der Erfassungsgruppe Untersequenz „b“ zu.

Bb982727.collapse_all(de-de,VS.110).gifOktale Escapesequenz

Eine oktale Escapesequenz ist ein umgekehrter Schrägstrich, der aus dem oktalen ein, zwei oder drei Ziffern (0-7) folgt.Sie entspricht einem Zeichen in der Zeichenfolge Ziel ab, der den Wert enthält, der durch diese Ziffern angegeben werden.Wenn alle Ziffern „0 " sind, ist die Sequenz nicht gültig.Beispielsweise entspricht „\ 101 " Ziel „A“ sequence wenn ASCII-Zeichencodierung verwendet wird.

Bb982727.collapse_all(de-de,VS.110).gifGewöhnliches Zeichen

Ein normales Zeichen ist jedes gültige Zeichen, die keine besondere Bedeutung in der aktuellen Grammatik verfügt.

In ECMAScriptbesondere Zeichen haben folgende Bedeutung:

  • ^ $ \ .* + ?( ) [ ] { } |

In BRE und grepbesondere Zeichen haben folgende Bedeutung:

  • .[ \

Auch in BRE und grephaben die folgenden Zeichen besondere Bedeutung, wenn sie in einem bestimmten Kontext verwendet werden:

  • „*“ hat eine besondere Bedeutung in allen Fällen außer wenn es sich um das erste Zeichen in einem regulären Ausdruck oder das erste Zeichen ist, das einen ursprünglichen „^“ in einem regulären Ausdruck folgt, oder wenn es das erste Zeichen einer Erfassungsgruppe oder das erste Zeichen, das einen ursprünglichen „^“ in einer Erfassungsgruppe folgt.

  • „^“ hat eine besondere Bedeutung, wenn das erste Zeichen eines regulären Ausdrucks ist.

  • „$“ hat eine besondere Bedeutung, wenn es das letzte Zeichen des regulären Ausdrucks ist.

In ERE, in egrepund awkbesondere Zeichen haben folgende Bedeutung:

  • .[ \ ( * + ?{ |

Auch in ERE, in egrepund awkhaben die folgenden Zeichen besondere Bedeutung, wenn sie in einem bestimmten Kontext verwendet werden.

  • ")“ hat eine besondere Bedeutung, wenn ein Vorausgehen „(“.

  • „^“ hat eine besondere Bedeutung, wenn das erste Zeichen eines regulären Ausdrucks ist.

  • „$“ hat eine besondere Bedeutung, wenn es das letzte Zeichen des regulären Ausdrucks ist.

Ein Übliche Zeichen entspricht das gleiche Zeichen in der Zeichenfolge des Ziels ab.Standardmäßig bedeutet dies, dass die Übereinstimmung erfolgreich ist, wenn die beiden Zeichen durch denselben Wert dargestellt werden.In einer gleichen Übereinstimmung der Groß- und Kleinschreibung zwei Zeichen ch0 und ch1 wenn traits.translate_nocase(ch0) == traits.translate_nocase(ch1)ab.In einer gebietsschemaabhängigen Übereinstimmung gleichen zwei Zeichen ch0 und ch1 wenn traits.translate(ch0) == traits.translate(ch1)ab.

Bb982727.collapse_all(de-de,VS.110).gifPositive Assertion

Eine positive Assertion passt dessen Inhalt ab, beansprucht jedoch keine Zeichen in der Zeichenfolge Ziel.

Beispiele:

  • (? „=aa) (a*“) Ziel stimmt die Zeichenfolge „aaaa“ und 1 mit der Erfassungsgruppe Untersequenz „aaaa“.

  • aa „()“ a* () Ziel stimmt die Zeichenfolge „aaaa“ und 1 mit der Erfassungsgruppe Untersequenz „aa“ am Anfang der Sequenz Ziel und 2 mit der Erfassungsgruppe Untersequenz „aa“ am Ende der Sequenz Ziel.

  • (? „=aa) (A)|(A)“ Ziel „a“ sequence ab und ordnet Erfassungsgruppe 1 mit einer leeren Sequenz (da die stimmt positives Assertionsfehler) und 2 mit der Erfassungsgruppe Untersequenz „a“ zu.Außerdem wird die Ziel sequence „aa“ und 1 mit der Erfassungsgruppe Untersequenz „aa“ und Erfassungsgruppe 2 mit einer leeren Sequenz.

Bb982727.collapse_all(de-de,VS.110).gifUnicode-Escapesequenz

Eine Unicode-Escapesequenz ist ein umgekehrter Schrägstrich, der aus dem Buchstaben „u“ gefolgt von vier Ziffern (0-9a-fA-F) folgt.Dies entspricht einem Zeichen in der Zeichenfolge Ziel ab, die den Wert enthält, der durch die vier Ziffern angegeben werden.Beispielsweise entspricht „\ u0041 Ziel“ sequence „A“ wenn ASCII-Zeichencodierung verwendet wird.

Bb982727.collapse_all(de-de,VS.110).gifPlatzhalterzeichen

Ein Platzhalterzeichen entspricht jedem Zeichen mit Ausnahme eines Zeilenumbruchs im Zielausdruck ab oder legt diese fest.

Bb982727.collapse_all(de-de,VS.110).gifWortgrenze

Bei einer Wortgrenze tritt in den folgenden Situationen auftreten:

  • Das aktuelle Zeichen am Anfang der Sequenz aus Ziel und Wortzeichen ist eines der A-Za-z0-9_.

  • In der aktuellen Zeichenposition zugreift nach dem Ende der Sequenz aus Ziel und das letzte Zeichen in der Zeichenfolge ist eines der Ziele Wortzeichen.

  • Das aktuelle Zeichen ist ein Wortzeichen und dem vorherigen Zeichen nicht.

  • Das aktuelle Zeichen ist keins der Wortzeichen und dem vorherigen Zeichen ist.

Bb982727.collapse_all(de-de,VS.110).gifWortgrenzen-Assertion

Eine Wortgrenzen assertion stimmt ab, wenn die aktuelle Position in der Zielzeichenfolge unmittelbar nach einer Wortgrenzeist.

Suche nach Übereinstimmungen suchen.

Damit ein regulärer Ausdruck eine Sequenz aus Ziel, der die reguläre Ausdruck muss die gesamte Ziel Sequenz entsprechen übereinstimmt.Beispielsweise entspricht der reguläre Ausdruck „bcd ab, die Ziel“ sequence „bcd“ nicht jedoch das Ziel sequence „abcd“ sequence „Ziel weiterhin die bcde“.

Damit eine Suche mit regulären Ausdrücken folgt, muss es eine Untersequenz Ziel irgendwo in der Sequenz vorhanden sein, die dem regulären Ausdruck entspricht.Die Suche findet i. d. R. die am weitesten links stehende übereinstimmende Untersequenz.

Beispiele:

  • Eine Suche nach dem regulären Ausdruck „bcd“ sequence „Ziel“ bcd folgt und entspricht der gesamten Sequenz ab.Dieselbe Suche in der Zielversion auch“ abcd „sequence und folgt entspricht dem letzten drei Zeichen ab.Dieselbe Suche an der auch bcde sequence „Ziel“ stimmt und folgt den ersten drei Zeichen ab.

  • Eine Suche nach dem regulären Ausdruck „bcd“ sequence „Ziel“ folgt bcdbcd und stimmt mit dem ersten drei Zeichen ab.

Wenn es mehr als eine Untersequenz gibt, die an einer Position in der Sequenz Ziel übereinstimmt, gibt es zwei Möglichkeiten, das übereinstimmende Muster ausgewählt wird.Untersequenz wählt dieerste Übereinstimmung aus, die zuerst gefunden wurde, wenn der reguläre Ausdruck übereinstimmenden ist.Längste Übereinstimmung wird die längste Untersequenz der aus, die an diesem Speicherort finden.Wenn es mehr als eine Untersequenz vorhanden ist, die die maximale Länge verfügt, wählt das längste Übereinstimmung aus, das zuerst gefunden wurde.Wenn beispielsweise erste Übereinstimmung verwendet wird, eine Suche nach dem regulären Ausdruck „b|bc“ sequence „Ziel“ abcd „b“ stimmt die Untersequenz ab, da der linke Ausdruck der Alternierung diese Untersequenz übereinstimmt. Daher versucht erste Übereinstimmung nicht den rechten Ausdruck der Alternierung.Wenn längste Übereinstimmung verwendet wird, die Übereinstimmungen „Suchen“ bc da „bc“ größer als „b“ ist.

Eine partielle Übereinstimmung erfolgreich ausgeführt, wenn die Übereinstimmung das Ende der Sequenz Ziel erreicht, ohne fehl, selbst wenn sie nicht das Ende des regulären Ausdrucks erreicht hat.Daher nachdem eine partielle Übereinstimmung erfolgreich ist, kann das Anfügen von Zeichen in einer Zeichenfolge Ziel bewirken, dass spätere partielle Übereinstimmung fehlschlägt.Wenn jedoch eine partielle Übereinstimmung fehlschlägt, kann das Anfügen von Zeichen in einer Zeichenfolge Ziel später partielle Übereinstimmung führen zu befolgen.Zum Beispiel mit einer teilweisen Übereinstimmung „ab“ stimmt die Zeichenfolge „a“, aber nicht „a-c“ ab.

Formatcodes

ECMAScript-Format-Regeln

Sed Format-Regeln

Ersatz-Text

„$&“

"&"

Die Zeichenfolge, die den vollständigen regulären Ausdruck übereinstimmt ([match[0].first, match[0].second))

„$$“

„$“

 

„\&“

"&"

„$ `“ (Dollarzeichen gefolgt vom Back Anführungszeichen)

 

Die Zeichensequenz, die der Untersequenz vorangeht, die den regulären Ausdruck übereinstimmt ([match.prefix().first, match.prefix().second))

„$/“ ' gefolgt vom Dollarzeichen (vorwärts Anführungszeichen)

 

Die Zeichensequenz, die der Untersequenz folgt, die den regulären Ausdruck übereinstimmt ([match.suffix().first, match.suffix().second))

„$n“

„\ n“

Die Zeichensequenz, die die Erfassungsgruppe nan der Position an, an der n eine Zahl zwischen 0 und 9 ([match[n].first, match[n].second)

 

„\ \ n“

„\ n“

„$nn“

 

Die Zeichensequenz, die die Erfassungsgruppe nnan der Position an, an der nn eine Zahl zwischen 10 und 99 ([match[nn].first, match[nn].second)

Siehe auch

Referenz

C++-Standardbibliothek-Übersicht