Geschweifte Klammern in regulären Ausdrücken in JavaScript
Die Operatoren '+', '*', '?'
sind gut, jedoch kann mit ihnen nicht eine
konkrete Anzahl von Wiederholungen angegeben werden. In diesem Fall
wird der Operator {} Ihnen zu Hilfe kommen.
Er funktioniert wie folgt: {5}
- fünf Wiederholungen, {2,5} – wird
zweimal bis fünfmal wiederholt (beide inklusive), {2,}
- wird zweimal oder öfter wiederholt. Achten Sie darauf,
dass diese Variante - {,2}
- nicht existiert. Sehen Sie sich die Beispiele an:
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
Buchstabe 'x', Buchstabe 'a' ein-
oder zweimal, Buchstabe 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
In der Variablen wird folgendes gespeichert:
'xx ! ! xaaax'
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
Buchstabe 'x', Buchstabe 'a' zwei
Mal oder öfter, Buchstabe 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
In der Variablen wird folgendes gespeichert:
'xx xax ! !'
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
Buchstabe 'x', Buchstabe 'a' drei
Mal, Buchstabe 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
In der Variablen wird folgendes gespeichert:
'xx xax xaax !'
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
Buchstabe 'a' zehn Mal:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
In der Variablen wird folgendes gespeichert:
'aaa ! aaa'
Beispiel
In diesem Beispiel wollte der Autor des Codes ein solches Muster:
Buchstabe 'x', Buchstabe 'a' drei
Mal oder weniger, Buchstabe 'x',
aber leider funktioniert so etwas - {,3} - nicht.
Man muss es explizit angeben:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
In der Variablen wird folgendes gespeichert:
'xx ! ! !'
Beispiel
Null ist auch erlaubt:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
In der Variablen wird folgendes gespeichert:
'! ! ! !'
Praktische Aufgaben
Gegeben sei ein String:
let str = 'aa aba abba abbba abbbba abbbbba';
Schreiben Sie einen regulären Ausdruck, der die Strings
'abba', 'abbba', 'abbbba'
und nur diese findet.
Gegeben sei ein String:
let str = 'aa aba abba abbba abbbba abbbbba';
Schreiben Sie einen regulären Ausdruck, der die Strings
der Form 'aba' findet, in denen 'b'
weniger als 3 Mal (inklusive) vorkommt.
Gegeben sei ein String:
let str = 'aa aba abba abbba abbbba abbbbba';
Schreiben Sie einen regulären Ausdruck, der die Strings
der Form 'aba' findet, in denen 'b'
mehr als 4 Mal (inklusive) vorkommt.