g steht für globale Übereinstimmung
m bedeutet, dass mehrere Zeilen übereinstimmen können
i steht für Matching ohne Berücksichtigung der Groß-/Kleinschreibung
^ entspricht dem Anfang der Eingabezeichenfolge
$ entspricht dem Ende der Eingabezeichenfolge
* Entspricht dem vorhergehenden Unterausdruck null oder mehrmals. Entspricht {0,}.
+ Entspricht dem vorhergehenden Unterausdruck einmal oder mehrmals. Entspricht {1,}.
? Entspricht dem vorhergehenden Unterausdruck null oder einmal. Entspricht [0,1}, wenn auf dieses Zeichen ein anderes Qualifikationsmerkmal (*, +, ?, {n}, {n,}, {n, m}) folgt Muster ist nicht gierig. Der Non-Greedy-Modus stimmt so wenig wie möglich mit der gesuchten Zeichenfolge überein, während der Standard-Greedy-Modus so viel wie möglich mit der gesuchten Zeichenfolge übereinstimmt. Beispielsweise entspricht „o+?“ für die Zeichenfolge „oooo“ einem einzelnen „o“, während „o+“ allen „o“ entspricht.
d entspricht einem numerischen Zeichen. Äquivalent zu [0-9]
D entspricht einem nicht numerischen Zeichen. Entspricht [^0-9].
w , entspricht „[A-Za-z0-9_]“
W entspricht jedem Nicht-Wort-Zeichen, äquivalent zu „[^A-Za-z0-9]“.
s entspricht jedem Leerzeichen, einschließlich Leerzeichen, Tabulatoren, Formularfeeds usw. Äquivalent zu [fnrtv]
S entspricht jedem Nicht-Leerzeichen. Entspricht [^frntv].
b entspricht einer Wortgrenze, also der Position zwischen einem Wort und einem Leerzeichen.
B entspricht Nicht-Wortgrenzen.
(Muster) stimmt mit dem Muster überein und erhält die Übereinstimmung. Die erhaltenen Übereinstimmungen können aus der generierten Matches-Sammlung abgerufen werden, indem die SubMatches-Sammlung in VBScript oder die $0…$9-Eigenschaften in JScript verwendet werden.
(?:pattern) stimmt mit dem Muster überein, erhält jedoch nicht das Übereinstimmungsergebnis, was bedeutet, dass es sich um eine Nicht-Erfassungsübereinstimmung handelt und nicht für eine spätere Verwendung gespeichert wird. Dies ist nützlich, wenn Sie das „oder“-Zeichen (|) verwenden, um Teile eines Musters zu kombinieren. Beispielsweise ist „industr(?:y|ies)“ ein kürzerer Ausdruck als „industry|industries“.
(?=Muster) Vorwärtssuche, die die Suchzeichenfolge am Anfang eines beliebigen Zeichenfolgenübereinstimmungsmusters abgleicht. Dies ist eine Nicht-Abruf-Übereinstimmung, das heißt, die Übereinstimmung muss nicht zur späteren Verwendung abgerufen werden. Beispielsweise entspricht „Windows (?=95|98|NT|2000)“ „Windows“ in „Windows 2000“, aber nicht „Windows“ in „Windows 3.1“. Beim Vorabruf werden keine Zeichen verbraucht, d. h. nach einer Übereinstimmung beginnt die Suche nach der nächsten Übereinstimmung unmittelbar nach der letzten Übereinstimmung und nicht nach dem Zeichen, das den Vorabruf enthält.
(?!Muster) Ein negativer Lookahead entspricht der Suchzeichenfolge am Anfang jeder Zeichenfolge, die nicht mit dem Muster übereinstimmt. Ein negativer Lookahead entspricht der Suchzeichenfolge an jeder Stelle, an der eine Zeichenfolge nicht mit dem Muster übereinstimmt. Dies ist eine Nicht-Abruf-Übereinstimmung, das heißt, die Übereinstimmung muss nicht zur späteren Verwendung abgerufen werden. Beispielsweise kann „Windows (?!95|98|NT|2000)“ mit „Windows“ in „Windows 3.1“ übereinstimmen, aber nicht mit „Windows“ in „Windows 2000“. Bei der Vorprüfung werden keine Zeichen verbraucht, d. h. nach einer Übereinstimmung beginnt die Suche nach der nächsten Übereinstimmung unmittelbar nach der letzten Übereinstimmung, anstatt
nach den Zeichen, die die Vorprüfung enthalten, mit derÜbereinstimmung von 2-4 chinesischen
Zeichenprogrammcodes
zu beginnen.
/^[u4e00-u9fa5]{2,4}$/g;
Programmcodes
mit 6 bis 18 Zeichen (Buchstaben, Zahlen, Unterstriche).
/^w{6,18}$/;
Programmcode
/^[A-Za-z0-9_]$/;
den Programmcode
des HTML-Tags an
/<[^>]*>|</[^>]*>/gm;
Programmcode
/</?[^>]+>/gm;
den Programmcode
für die linken und rechten Leerzeichen an
/(^s*)|(s*$)/g;
Prioritätsreihenfolge (von hoch nach niedrig)
Escape-Zeichen
(),(?:),(?=),[] runde Klammern und eckige Klammern
* , + , ? , {n} , {n,} , {n,m} Qualifikationsmerkmal
^ , [vapour:content]nbsp; Position und Reihenfolge
|. Die Operation „oder“
gleicht zwei aufeinanderfolgende identische Wortprogrammcodes ab,
die
durch Leerzeichen getrennt sind
/b([az]+) 1b/gim ;
In diesem Beispiel ist der Unterausdruck jeder Term zwischen den Klammern.
Der erfasste Ausdruck besteht aus einem oder mehreren alphabetischen Zeichen, wie durch „[az]+“ angegeben.
Der zweite Teil des regulären Ausdrucks ist ein Verweis auf die zuvor erfasste Teilübereinstimmung, bei der es sich um das zweite Vorkommen des Worts handelt, mit dem der angehängte Ausdruck übereinstimmt.
„1“ wird verwendet, um die erste Unterübereinstimmung anzugeben. Wortgrenzen-Metazeichen stellen sicher, dass nur einzelne Wörter erkannt werden.
Wäre dies nicht geschehen, würden Formulierungen wie „ist ausgestellt“ oder „dies ist“ fälschlicherweise vom Ausdruck erkannt.
Programmcode
var ss = „Steigen die Benzinpreise?. Steigen die Benzinpreise?.“;
var re = /b([az]+) 1b/gim;
var rv = ss.replace(re,"$1");
document.write(rv) //Ausgabe „Steigen die Benzinkosten? Steigen die Benzinkosten?.“
Programmcode
/bCha/
entspricht den ersten drei Zeichen des Wortes „Kapitel“, da sie nach einer Wortgrenze stehen
Programmcode
/terb/
stimmt mit „ter“ im Wort „Chapter“ überein, da es vor einer Wortgrenze steht
Programmcode
/Bapt/
stimmt mit „apt“ überein, weil es in der Mitte von „Chapter“ steht, aber nicht mit „apt“ in „aptitude“, weil es hinter einer Wortgrenze steht
*/
Programmcode
der URL-Adresse abgleichen
/(w+)://([^/:]+)(:d*)?([^#]*)/
Zerlegen Sie den folgenden URI in Protokolle (FTP, http usw.), Domänennamen Adresse und Seite/Pfad:
http://msdn.microsoft.com:80/scripting/default.htm
Der erste zusätzliche Unterausdruck wird verwendet, um den Protokollteil der Webadresse zu erfassen. Dieser Unterausdruck entspricht jedem Wort, dem ein Doppelpunkt und zwei Schrägstriche vorangestellt sind. Der zweite zusätzliche Unterausdruck erfasst die Domänenadresse der Adresse. Dieser Unterausdruck entspricht jeder Zeichenfolge, die nicht die Zeichen „^“, „/“ oder „:“ enthält. Der dritte zusätzliche Unterausdruck erfasst die Website-Portnummer, sofern eine angegeben ist. Dieser Unterausdruck entspricht null oder mehr Zahlen, gefolgt von einem Doppelpunkt. Schließlich erfasst der vierte zusätzliche Unterausdruck die durch die Webadresse angegebenen Pfad- und/oder Seiteninformationen. Dieser Unterausdruck entspricht einem oder mehreren Zeichen außer „#“ oder Leerzeichen.
Wenn der reguläre Ausdruck auf den oben gezeigten URI angewendet wird, umfassen die Unterübereinstimmungen Folgendes:
RegExp.$1 enthält „http“
RegExp.$2 enthält „msdn.microsoft.com“
RegExp.$3 enthält „:80“
RegExp.$4
Methode1
das enthält denregulären Ausdruck
„/scripting/default.htm“
.
Die Testmethodegibt einen booleschen Wert zurück, der angibt, ob das Muster in der durchsuchten Zeichenfolge vorhanden ist.
Die Eigenschaften des globalen RegExp-Objekts werden nicht geändert die Testmethode.
Beispiel1
http://www.knowsky.com/
Programmcode
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var flag=reg.test(url);
Flag //true zurückgeben
RegExp.$1 //Gib „http“ zurück
RegExp.$2 //Gib „msdn.microsoft.com“ zurück
RegExp.$3 //Return „:80“
$egExp.$4 //Return „/scripting/default.html“
Weder die Such- noch die Testmethode können das globale RegExp-Objekt aktualisieren, daher geben RegExp.input, RegExp.index und RegExp.lastIndex undefiniert
2 zurück. Die match-Methode
verwendet ein reguläres Ausdrucksmuster, um eine Suche in der Zeichenfolge durchzuführen, und gibt das Ergebnis mit zurück die Suche als Array.
Programmcode
stringObj.match(rgExp)
Wenn die Match-Methode keine Übereinstimmung findet, gibt sie null zurück. Wenn eine Übereinstimmung gefunden wird, wird ein Array zurückgegeben und die Eigenschaften des globalen RegExp-Objekts werden aktualisiert, um die Übereinstimmung widerzuspiegeln.
Das von der Match-Methode zurückgegebene Array verfügt über drei Attribute: Eingabe, Index und LastIndex.
Die Input-Eigenschaft enthält die gesamte gesuchte Zeichenfolge.
Die Index-Eigenschaft enthält die Position der passenden Teilzeichenfolge innerhalb der gesamten Suchzeichenfolge.
Die LastIndex-Eigenschaft enthält die Position neben dem letzten Zeichen im letzten Treffer.
Wenn das globale Flag (g) nicht gesetzt ist, enthält Element 0 des Arrays die gesamte Übereinstimmung und die Elemente 1 bis n enthalten alle Unterübereinstimmungen, die in der Übereinstimmung aufgetreten sind.
Dies entspricht der exec-Methode ohne Setzen des globalen Flags. Wenn das globale Flag gesetzt ist, enthalten die Elemente 0 bis n alle Übereinstimmungen
mit Beispiel1 (das globale Flag ist nicht gesetzt).
Programmcode
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var myArray=url.match(reg);
RegExp.$1 //Gib „http“ zurück
RegExp.$2 //Gib „msdn.microsoft.com“ zurück
RegExp.$3 //Return „:80“
$egExp.$4 //Return „/scripting/default.html“
myArray //Return myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //Return „http://msdn.microsoft.com:80/scripting/default.html“
myArray.index //0 zurückgeben
myArray.lastIndex //Return 51
Beispiel2 (globales Flag gesetzt)
Programmcode
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/g;
var myArray=url.match(reg);
RegExp.$1 //Gib „http“ zurück
RegExp.$2 //Gib „msdn.microsoft.com“ zurück
RegExp.$3 //Return „:80“
$egExp.$4 //Return „/scripting/default.html“
myArray //Return myArray=" http://msdn.microsoft.com:80/scripting/default.html "
myArray.input //Return „http://msdn.microsoft.com:80/scripting/default.html“
myArray.index //0 zurückgeben
myArray.lastIndex //Return 51
Beachten Sie den Unterschied nach dem Setzen des globalen Flags
Wenn das globale Flag (g) nicht gesetzt ist, enthält Element 0 des Arrays die gesamte Übereinstimmung und die Elemente 1 bis n enthalten alle Unterübereinstimmungen, die in der Übereinstimmung aufgetreten sind.
Dies entspricht der exec-Methode ohne Setzen des globalen Flags. Wenn das globale Flag gesetzt ist, enthalten die Elemente 0 bis n alle Übereinstimmungen
3. Die exex-Methode
führt eine Suche nach einer Zeichenfolge mithilfe eines regulären Ausdrucksmusters durch und gibt ein Array zurück, das die Ergebnisse der Suche enthält.
Programmcode
rgExp.exec(str)
Wenn die exec-Methode keine Übereinstimmung findet, gibt sie null zurück.
Wenn eine Übereinstimmung gefunden wird, gibt die exec-Methode ein Array zurück und die Eigenschaften des globalen RegExp-Objekts werden aktualisiert, um die Übereinstimmung widerzuspiegeln.
Element 0 des Arrays enthält die vollständige Übereinstimmung, während die Elemente 1 bis n alle Teilübereinstimmungen enthalten, die in der Übereinstimmung auftreten.
Dies entspricht der Match-Methode ohne Setzen des globalen Flags (g).
Wenn das globale Flag für den regulären Ausdruck gesetzt ist, beginnt exec mit der Suche an der Position, die durch den Wert von lastIndex angegeben wird.
Wenn das globale Flag nicht gesetzt ist, ignoriert exec den Wert von lastIndex und sucht vom Anfang der Zeichenfolge an.
Das von der exec-Methode zurückgegebene Array verfügt über drei Attribute: Eingabe, Index und LastIndex.
Die Input-Eigenschaft enthält die gesamte gesuchte Zeichenfolge.
Das Index-Attribut enthält die Position der übereinstimmenden Teilzeichenfolge in der gesamten gesuchten Zeichenfolge.
Die LastIndex-Eigenschaft enthält die nächste Position des letzten Zeichens in der Übereinstimmung.
Beispiel1 (kein globales Flag gesetzt)
Programmcode
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var myArray=reg.exec(url);
RegExp.$1 //Gib „http“ zurück
RegExp.$2 //Gib „msdn.microsoft.com“ zurück
RegExp.$3 //Return „:80“
$egExp.$4 //Return „/scripting/default.html“
myArray //Return myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //Return „http://msdn.microsoft.com:80/scripting/default.html“
myArray.index //0 zurückgeben
myArray.lastIndex //Return 51
Wenn das globale Flag (g) nicht gesetzt ist, ist die Match-Methode dieselbe wie die Exec-Methode
Beispiel2 (Globales Flag setzen)
Programmcode
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var myArray=reg.exec(url);
RegExp.$1 //Gib „http“ zurück
RegExp.$2 //Gib „msdn.microsoft.com“ zurück
RegExp.$3 //Return „:80“
$egExp.$4 //Return „/scripting/default.html“
myArray //Return myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //Return „http://msdn.microsoft.com:80/scripting/default.html“
myArray.index //0 zurückgeben
myArray.lastIndex //Return 51
4 Die Suchmethode
gibt die Position des ersten Teilstrings zurück, der mit dem Suchinhalt des regulären Ausdrucks übereinstimmt.
Programmcode
stringOjb.search(rgExp)
Die Suchmethode gibt an, ob eine entsprechende Übereinstimmung vorhanden ist.
Wenn eine Übereinstimmung gefunden wird, gibt die Suchmethode einen ganzzahligen Wert zurück, der den Offset der Übereinstimmung vom Anfang der Zeichenfolge angibt.
Wenn keine Übereinstimmung gefunden wird, wird -1 zurückgegeben.
Beispiel1
Programmcode
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var flag=url.search(reg);
Flag //gibt 0 zurück
RegExp.$1 //Gib „http“ zurück
RegExp.$2 //Gib „msdn.microsoft.com“ zurück
RegExp.$3 //Return „:80“
$egExp.$4 //Return „/scripting/default.html“
Weder die Such- noch die Testmethode können das globale RegExp-Objekt aktualisieren, daher geben RegExp.input, RegExp.index und RegExp.lastIndex undefiniert zurück
5 Die Ersetzungsmethode
gibt nach der Textersetzung basierend auf dem regulären Ausdruck eine Kopie der Zeichenfolge zurück und
kann das globale RegExp-Objekt aktualisieren.