Rakstzīmju grupas JavaScript regulārajās izteiksmēs

Pastāv īpašas komandas, kas ļauj atlasīt uzreiz veselas rakstzīmju grupas. Komanda \d apzīmē ciparu no 0 līdz 9. Komanda \w apzīmē ciparu, latīņu burtu vai apakšsvītras zīmi. Komanda \s apzīmē atstarpi vai atstarpes rakstzīmi: atstarpi, rindas beigas, tabulēšanu. Var invertēt komandas nozīmi, ierakstot lielo burtu: piemēram, ja \d - cipars, tad \D - nav cipars.

Piemērs

Atradīsim visus ciparus:

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

Rezultātā mainīgajā tiks ierakstīts sekojošs:

javascript'! !! !!!'

Piemērs

Atkārtošanās operatori uzskata komandu-grupas par vienu veselu, tas ir, grupējošas iekavas nav vajadzīgas. Nākamajā piemērā meklēšanas šablons izskatās šādi: cipars no 0 līdz 9 vienu reizi vai vairāk:

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

Rezultātā mainīgajā tiks ierakstīts sekojošs:

javascript'! ! ! abc @@@'

Piemērs

Nākamajā piemērā meklēšanas šablons izskatās šādi: jebkas viens vai vairāk reižu, bet ne cipars no 0 līdz 9:

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

Rezultātā mainīgajā tiks ierakstīts sekojošs:

javascript'123!3!'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: atstarpes rakstzīme vienu reizi:

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

Rezultātā mainīgajā tiks ierakstīts sekojošs:

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

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: NE atstarpes rakstzīme vienu vai vairāk reižu. Visas apakšvirknes, atdalītas ar atstarpēm, tiks aizvietotas ar '!':

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

Rezultātā mainīgajā tiks ierakstīts sekojošs:

javascript'! ! ! ! !'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: cipars vai burts vienu vai vairāk reižu. Visas apakšvirknes, kas sastāv no cipariem un burtiem, tiks aizvietotas ar '!':

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

Rezultātā mainīgajā tiks ierakstīts sekojošs:

javascript'! ! ! ! @@@'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: NE cipars un NE burts vienu vai vairāk reižu. Pēc šīs definīcijas mūsu gadījumā iekļūst '@@@' un visas atstarpes (tās arī taču nav ne cipari, ne burti). Pievērsiet uzmanību tam, ka beigās ir viens '!' - tajā pārveidojās virkne ' @@@' - ar atstarpi sākumā:

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

Rezultātā mainīgajā tiks ierakstīts sekojošs:

javascript'1!12!123!Abc!'

Praktiskie uzdevumi

Задание 1

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas atradīs virknes, kurās malās atrodas burti 'a', un starp tiem ir viens cipars.

Задание 2

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas atradīs virknes, kurās malās atrodas burti 'a', un starp tiem ir jebkurš ciparu daudzums.

Задание 3

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas atradīs virknes, kurās malās atrodas burti 'a', un starp tiem ir jebkurš ciparu daudzums (ieskaitot arī nulles ciparu skaitu, tas ir, virkni 'aa').

Задание 4

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas atradīs virknes sekojošā veidā: malās atrodas burti 'a' un 'b', un starp tiem - nav skaitlis un nav atstarpe.

Задание 5

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas atradīs virknes sekojošā veidā: malās atrodas burti 'a' un 'b', un starp tiem - nav burts, nav cipars un nav atstarpe.

Задание 6

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas aizvietos visas atstarpes ar '!'.