Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Quantifiers
Quantifizierer geben die Anzahl der Zeichen oder Ausdrücke an, die übereinstimmen sollen.
Probieren Sie es aus
const ghostSpeak = "booh boooooooh";
const regexpSpooky = /bo{3,}h/;
console.log(ghostSpeak.match(regexpSpooky));
// Expected output: Array ["boooooooh"]
const modifiedQuote = "[He] ha[s] to go read this novel [Alice in Wonderland].";
const regexpModifications = /\[.*?\]/g;
console.log(modifiedQuote.match(regexpModifications));
// Expected output: Array ["[He]", "[s]", "[Alice in Wonderland]"]
const regexpTooGreedy = /\[.*\]/g;
console.log(modifiedQuote.match(regexpTooGreedy));
// Expected output: Array ["[He] ha[s] to go read this novel [Alice in Wonderland]"]
Typen
Hinweis: Im Folgenden bezieht sich item nicht nur auf einzelne Zeichen, sondern schließt auch Zeichenklassen sowie Gruppen und Rückverweise ein.
| Zeichen | Bedeutung |
|---|---|
x*
|
Passt zum vorhergehenden Element "x" 0 oder mehr Mal. Zum Beispiel,
|
x+
|
Passt zum vorhergehenden Element "x" 1 oder mehr Mal. Entspricht
|
x?
|
Passt zum vorhergehenden Element "x" 0 oder 1 Mal. Zum Beispiel,
Wenn direkt nach einem der Quantifizierer |
x{n}
|
Wo "n" eine nicht-negative Ganzzahl ist, passt genau "n" Vorkommen des
vorhergehenden Elements "x". Zum Beispiel, |
x{n,}
|
Wo "n" eine nicht-negative Ganzzahl ist, passt zu mindestens "n" Vorkommen des
vorhergehenden Elements "x". Zum Beispiel, |
x{n,m}
|
Wo "n" und "m" nicht-negative Ganzzahlen sind und |
|
|
Standardmäßig sind Quantifizierer wie
Hinweis: Das Hinzufügen von |
Beispiele
>Wiederholtes Muster
In diesem Beispiel passen wir ein oder mehrere Wortzeichen mit \w+, dann ein oder mehrere Zeichen "a" mit a+, und enden schließlich an einer Wortgrenze mit \b.
const wordEndingWithAs = /\w+a+\b/;
const delicateMessage = "This is Spartaaaaaaa";
console.table(delicateMessage.match(wordEndingWithAs)); // [ "Spartaaaaaaa" ]
Zeichen zählen
In diesem Beispiel passen wir Wörter, die einen einzigen Buchstaben haben, Wörter, die zwischen 2 und 6 Buchstaben haben, und Wörter, die 13 oder mehr Buchstaben haben.
const singleLetterWord = /\b\w\b/g;
const notSoLongWord = /\b\w{2,6}\b/g;
const longWord = /\b\w{13,}\b/g;
const sentence = "Why do I have to learn multiplication table?";
console.table(sentence.match(singleLetterWord)); // ["I"]
console.table(sentence.match(notSoLongWord)); // [ "Why", "do", "have", "to", "learn", "table" ]
console.table(sentence.match(longWord)); // ["multiplication"]
Optionales Zeichen
In diesem Beispiel passen wir Wörter, die entweder mit "our" oder "or" enden.
const britishText = "He asked his neighbour a favour.";
const americanText = "He asked his neighbor a favor.";
const regexpEnding = /\w+ou?r/g;
// \w+ One or several letters
// o followed by an "o",
// u? optionally followed by a "u"
// r followed by an "r"
console.table(britishText.match(regexpEnding));
// ["neighbour", "favour"]
console.table(americanText.match(regexpEnding));
// ["neighbor", "favor"]
Gierig versus nicht-gierig
In diesem Beispiel passen wir ein oder mehrere Wortzeichen oder Leerzeichen mit [\w ]+ und [\w ]+?. Das erste ist gierig und das zweite ist nicht-gierig. Beachten Sie, wie das zweite sofort aufhört, sobald es die Mindestanforderung erfüllt.
const text = "I must be getting somewhere near the center of the earth.";
const greedyRegexp = /[\w ]+/;
console.log(text.match(greedyRegexp)[0]);
// "I must be getting somewhere near the center of the earth"
// almost all of the text matches (leaves out the dot character)
const nonGreedyRegexp = /[\w ]+?/; // Notice the question mark
console.log(text.match(nonGreedyRegexp));
// "I"
// The match is the smallest one possible
Siehe auch
- Reguläre Ausdrücke Leitfaden
- Zeichenklassen Leitfaden
- Assertions Leitfaden
- Gruppen und Rückverweise Leitfaden
RegExp- Reguläre Ausdrücke Referenz
- Quantifizierer:
*,+,?,{n},{n,},{n,m}