Teckengrupper i reguljära uttryck i JavaScript

Det finns speciella kommandon som gör det möjligt att välja ut hela grupper av tecken på en gång. Kommandot \d betyder en siffra från 0 till 9. Kommandot \w betecknar en siffra, en latinsk bokstav eller understreck. Kommandot \s betecknar ett mellanslag eller ett blanktecken: mellanslag, radbrytning, tabbsteg. Det är möjligt att invertera kommandots betydelse genom att skriva stor bokstav: till exempel, om \d är en siffra, så är \D inte en siffra.

Exempel

Låt oss hitta alla siffror:

javascriptlet str = '1 12 123';
let res = str.replace(/\d/g, '!');

Som ett resultat kommer följande att skrivas in i variabeln:

javascript'! !! !!!'

Exempel

Upprepningsoperatorer betraktar kommandon-grupper som en helhet, det vill säga grupperande parenteser behövs inte. I följande exempel ser sökmönstret ut så här: siffra från 0 till 9 en eller flera gånger:

javascriptlet str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');

Som ett resultat kommer följande att skrivas in i variabeln:

javascript'! ! ! abc @@@'

Exempel

I följande exempel ser sökmönstret ut så här: vad som helst en eller flera gånger, men inte en siffra från 0 till 9:

javascriptlet str = '123abc3@@';
let res = str.replace(/\D+/g, '!');

Som ett resultat kommer följande att skrivas in i variabeln:

javascript'123!3!'

Exempel

I detta exempel ser sökmönstret ut så här: blanktecken en gång:

javascriptlet str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');

Som ett resultat kommer följande att skrivas in i variabeln:

javascript'1!12!123!abc!@@@'

Exempel

I detta exempel ser sökmönstret ut så här: INTE blanktecken en eller flera gånger. Alla delsträngar, separerade med mellanslag, kommer att ersättas med '!':

javascriptlet str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');

Som ett resultat kommer följande att skrivas in i variabeln:

javascript'! ! ! ! !'

Exempel

I detta exempel ser sökmönstret ut så här: siffra eller bokstav en eller flera gånger. Alla delsträngar som består av siffror och bokstäver kommer att ersättas med '!':

javascriptlet str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');

Som ett resultat kommer följande att skrivas in i variabeln:

javascript'! ! ! ! @@@'

Exempel

I detta exempel ser sökmönstret ut så här: INTE siffra och INTE bokstav en eller flera gånger. I vårt fall faller '@@@' och alla mellanslag under denna definition (de är ju också varken siffror eller bokstäver). Var uppmärksam på att det i slutet finns en '!' - i den omvandlades strängen ' @@@' - med ett mellanslag framför:

javascriptlet str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');

Som ett resultat kommer följande att skrivas in i variabeln:

javascript'1!12!123!Abc!'

Praktiska uppgifter

Задание 1

Given en sträng:

javascriptlet str = 'a1a a2a a3a a4a a5a aba aca';

Skriv ett reguljärt uttryck som hittar strängar, där vid kanterna står bokstäverna 'a', och mellan dem finns en siffra.

Задание 2

Given en sträng:

javascriptlet str = 'a1a a22a a333a a4444a a55555a aba aca';

Skriv ett reguljärt uttryck som hittar strängar, där vid kanterna står bokstäverna 'a', och mellan dem finns ett valfritt antal siffror.

Задание 3

Given en sträng:

javascriptlet str = 'aa a1a a22a a333a a4444a a55555a aba aca';

Skriv ett reguljärt uttryck som hittar strängar, där vid kanterna står bokstäverna 'a', och mellan dem finns ett valfritt antal siffror (inklusive noll siffror, det vill säga strängen 'aa').

Задание 4

Given en sträng:

javascriptlet str = 'avb a1b a2b a3b a4b a5b abb acb';

Skriv ett reguljärt uttryck som hittar strängar av följande typ: vid kanterna står bokstäverna 'a' och 'b', och mellan dem - inte en siffra och inte ett mellanslag.

Задание 5

Given en sträng:

javascriptlet str = 'ave a#b a2b a$b a4b a5b a-b acb';

Skriv ett reguljärt uttryck som hittar strängar av följande typ: vid kanterna står bokstäverna 'a' och 'b', och mellan dem - inte en bokstav, inte en siffra och inte ett mellanslag.

Задание 6

Given en sträng:

javascriptlet str = 'ave a#a a2a a$a a4a a5a a-a aca';

Skriv ett reguljärt uttryck som ersätter alla mellanslag med '!'.