1. reguläre Ausdrücke in Saiten
Verwenden Sie regelmäßige Ausdrücke, um zu suchen, zu extrahieren, zu segmentieren, zu ersetzen und andere Vorgänge auf Zeichenfolgen zu ersetzen. Die folgenden speziellen Methoden finden Sie in der String -Klasse:
Boolesche Übereinstimmungen (String Regex): Bestimmt, ob die Zeichenfolge mit dem angegebenen regulären Ausdruck übereinstimmt.
String ersetzungen (String Regex, String -Ersatz): Ersetzen Sie alle Substrings, die Regex in dieser Zeichenfolge durch Ersatz anpassen.
String [] Split (String Regex): Verwenden Sie Regex als Trennzeichen, um die Zeichenfolge in mehrere Substrings aufzuteilen.
Alle oben genannten speziellen Methoden stützen sich auf reguläre Ausdrücke von Java.
2. Erstellen Sie regelmäßige Ausdrücke
X: Zeichen X (x kann jeden rechtlichen Charakter darstellen);
/0mnn: Das Zeichen, das durch die Oktalzahl omnn dargestellt wird;
/xhh: Der von hexadezimal 0xhh dargestellte Charakter;
/UHHHH: Unicode -Zeichen, dargestellt durch Hexadezimal 0xHHHH;
/t: tab ('/u0009');
/n: Neue Zeile (Line Newline) Zeichen ('/u000a');
/r: Wagenrückgabezeichen ('/u000d');
/f: Seiten break ('/u000c');
/A: Alarm (Bell) Symbol ('/U0007');
/e: Escape charakter ('/u001b');
/CX: Der Controller, der x entspricht. Zum Beispiel entspricht /cm Strg-M. Der x -Wert muss einer von einem ~ z oder a ~ z sein;
3. Sonderzeichen in regulären Ausdrücken
$: Passen Sie das Ende einer Linie an. Um dem $ Charakter selbst zu entsprechen, verwenden Sie /$;
^: Passen Sie den Beginn einer Linie an. Verwenden Sie / ^;
(): Markieren Sie die Start- und Endpositionen der Suberpression. Verwenden Sie /(und /);
[]: Wird verwendet, um die Start- und Endpositionen von Klammerausdrücken zu bestimmen. Verwenden Sie /[und /];
{}: Wird verwendet, um die Häufigkeit der vorherigen Subtopession zu markieren. Verwenden Sie /{und /};
*: Gibt an, dass die vorherige Unterexpression Null oder mehr Male auftreten kann. Verwenden Sie / *;
+: Gibt an, dass die vorherige Unterexpression einmal oder mehrmals auftreten kann. Verwenden Sie / +;
?: Gibt an, dass die vorherige Unterexpression Null oder einmal auftreten kann. Verwenden Sie /?;
.: Passen Sie einen beliebigen Einheit -Zeichen außer Zeilenunterbrechung/n an. Zu entsprechen, der Charakter selbst, verwendet /.;
/: Wird verwendet, um dem nächsten Zeichen zu entkommen oder Oktal- oder Hexadezimalzeichen anzugeben. Zu entsprechen /charakterieren, verwenden Sie //;
|: Geben Sie eine der beiden Elemente an. Verwenden Sie /|;
4. Vordefinierte Zeichen
.: Kann jedem Charakter übereinstimmen;
/d: Übereinstimmung mit allen Zahlen von 0 ~ 9;
/D: Übereinstimmung mit Nichtzahlen;
/s: Passen Sie alle Whitespace -Zeichen an, einschließlich Leerzeichen, Registerkarten, Kutschenrendite, Seitenunterbrechungen, Zeilenpausen usw.;
/S: Passen Sie alle Nicht-Whitespace-Charaktere an;
/w: Übereinstimmung mit allen Wortzeichen, einschließlich aller Zahlen aus 0 ~ 9, 26 englischen Buchstaben und Unterstrichen (_);
/W: Passen Sie alle Nicht-Wort-Charaktere an;
5. Grenzübereinstimmungszeichen
^: Der Beginn der Linie
$: Das Ende der Linie
/B: Wortgrenzen
/B: Nicht-Wort-Grenze
/A: Der Beginn der Eingabe
/G: Das Ende des vorherigen Spiels
/Z: Das Ende des Eingangs, nur für den letzten Endcharakter
/z: Das Ende der Eingabe
6. Symbole, die die Anzahl der Übereinstimmungen darstellen
Die folgende Abbildung zeigt Symbole, die die Anzahl der Übereinstimmungen darstellen, die verwendet werden, um zu bestimmen, wie oft das Symbol neben links vom Symbol erscheint:
(1) Angenommen, wir möchten in einer Textdatei nach der US -amerikanischen Sozialversicherungsnummer suchen. Das Format dieser Zahl ist 999-99-9999. Der regelmäßige Ausdruck, der früher entspricht, ist in Abbildung 1 dargestellt. In regulären Ausdrücken hat Bindestrich ("-") eine besondere Bedeutung, die einen Bereich darstellt, wie z.
(2) Nehmen wir bei der Suche an, Sie hoffen, dass der Bindestrich erscheinen kann oder nicht-das heißt, 999-99-9999 und 999999999999 sind beide im richtigen Format. Zu diesem Zeitpunkt können Sie das "?" Quantitätsqualifikationssymbol nach dem Bindestrich, wie in der Abbildung gezeigt:
(3) Schauen wir uns ein weiteres Beispiel unten an. Ein Format für amerikanische Autokennzeichen sind vier Nummern plus zwei Buchstaben. Dem regulären Ausdruck geht der Nummer Teil "[0-9] {4}" und dem Buchstabenteil "[Az] {2}" voraus. Die folgende Abbildung zeigt den vollständigen regulären Ausdruck.
7. Einige Beispiele 1
Funktion ersetzen (Inhalt) {var reg = '// [(// w+) //]', muster = new regexp (reg, 'g'); return content.replace (Muster, '<img src = "img/$ 1.png">');} // oder Funktion ersetzen (Inhalt) {return content.replace (// [(/w+) // g, '<img src = "img/$ 1.png">');};};};};};};};};};};};Beispiel 2
// null-width hinter alternative Lösung schauen // (? <= ...) und (? <! ...) // Methode 1: Umblenden Sie die Zeichenfolge um, suchen Sie mit Lookahead, ersetzen Sie es und gehen Sie dann zurück zurück, zum Beispiel: string.prototype.reverse = function () {return this.Slit (''). Reverse (). Join ('');} // simulieren // simuliert (simulieren). 'foo.bar | baz'.replace (/(? <=/.) B/,' C ') ersetzen Sie B sofort durch b durch'. ' Vor dem C'foo.bar | baz'.reverse (). Ersetzen (/b (? =/.)/g, 'c'). Reverse () //foo.car|Baz//method 2: Verwenden Sie keine Breite ohne Breite, beurteilen Sie selbst // Simulate 'foo.bar | baz'.replace (/?). vor dem C'foo.bar | baz'.replace (/(/.)? B/, Funktion ($ 0, $ 1) {return $ 1? $ 1 + 'c': $ 0;}) //foo.car|baz//simulate 'foo.bar | baz'.replace (/(? <!/.) b/. '.Bar | baz'.replace (/(/.)? B/, Funktion ($ 0, $ 1) {return $ 1? $ 0:' c ';}) //foo.bar|caz//this -Methode ist nützlich in einigen relativ einfachen Szenarien und kann mit Lookahead verwendet werden // Es gibt viele Szenarien, die ungültig sind, z. B. sind ungültige: Es gibt ungültige Szenarien. //''tttt'.replace(/(?<=t/g, 'x') Das Ergebnis sollte 'txxx''tttt'.replace (/(t)? T/g, Funktion ($ 0, $ 1) {return $ 1? $ +' x ': $ 0;}) // TXTX) sein.Beispiel 3
Verwendung von $ & symbol
Funktion EscapereGexp (str) {return Str.Replace (/[abc]/g, "($ &)");} var str = 'a12b34c'; console.log (EscapereGexp (str)); // (a) 12 (b) 34 (c)