Der 'oder'-Befehl in JavaScript Regular Expressions

In dieser Lektion analysieren wir den Befehl '|', der eine leistungsfähigere Variante von 'oder' im Vergleich zum Befehl [ ] darstellt. Dieser Befehl erlaubt es, den regulären Ausdruck in mehrere Teile zu teilen. Dabei kann das Gesuchte entweder auf einen Teil des regulären Ausdrucks passen oder auf einen anderen. Lassen Sie uns das an Beispielen sehen.

Beispiel

In diesem Beispiel ist das Suchmuster wie folgt: drei Buchstaben 'a' oder drei Buchstaben 'b':

javascriptlet str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');

In der Variablen wird folgendes gespeichert:

javascript'! ! abb'

Beispiel

In diesem Beispiel ist das Suchmuster wie folgt: drei Buchstaben 'a' oder 1 oder mehr Buchstaben 'b':

javascriptlet str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');

In der Variablen wird folgendes gespeichert:

javascript'! ! ! ! axx'

Beispiel

In diesem Beispiel ist das Suchmuster wie folgt: ein oder mehrere Buchstaben oder drei Ziffern:

javascriptlet str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');

In der Variablen wird folgendes gespeichert:

javascript'! ! ! 1 12 !'

Beispiel

Der senkrechte Strich kann den regulären Ausdruck nicht nur in zwei Teile, sondern in beliebig viele Teile teilen:

javascriptlet str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');

In der Variablen wird folgendes gespeichert:

javascript'! ! ! ddd'

Beispiel

Wenn der senkrechte Strich innerhalb von runden Klammern steht, dann funktioniert das 'oder' nur innerhalb dieser Klammern.

Lassen Sie uns als Beispiel Zeichenketten nach folgendem Muster finden: am Anfang steht entweder 'a', oder 'b' ein oder mehrere Male, und danach zwei Buchstaben 'x':

javascriptlet str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');

In der Variablen wird folgendes gespeichert:

javascript'! ! ! exx'

Praktische Aufgaben

Задание 1

Gegeben sei die Zeichenkette:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

Schreiben Sie einen regulären Ausdruck, der Zeichenketten nach folgendem Muster findet: an den Rändern stehen die Buchstaben 'a', und dazwischen - entweder der Buchstabe 'e' beliebig viele Male oder der Buchstabe 'x' beliebig viele Male.

Задание 2

Gegeben sei die Zeichenkette:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

Schreiben Sie einen regulären Ausdruck, der Zeichenketten nach folgendem Muster findet: an den Rändern stehen die Buchstaben 'a', und dazwischen - entweder der Buchstabe 'e' zwei Mal oder der Buchstabe 'x' beliebig viele Male.