Задачи для решения

На {}

Дана строка 'aa aba abba abbba abbbba abbbbba'. Напишите регулярку, которая найдет строки abba, abbba, abbbba и только их.

Решение:

'!', 'aa aba abba abbba abbbba abbbbba'.replace(/ab{2,4}a/);

Дана строка 'aa aba abba abbba abbbba abbbbba'. Напишите регулярку, которая найдет строки вида aba, в которых 'b' встречается менее 3-х раз (включительно).

Решение:

'!', 'aa aba abba abbba abbbba abbbbba'.replace(/ab{0,3}a/);

Дана строка 'aa aba abba abbba abbbba abbbbba'. Напишите регулярку, которая найдет строки вида aba, в которых 'b' встречается более 4-х раз (включительно).

Решение:

'!', 'aa aba abba abbba abbbba abbbbba'.replace(/ab{4,}a/);

На \s, \S, \w, \W, \d, \D

Дана строка 'a1a a2a a3a a4a a5a aba aca'. Напишите регулярку, которая найдет строки, в которых по краям стоят буквы 'a', а между ними одна цифра.

Решение:

'a1a a2a a3a a4a a5a aba aca'.replace(/a\da/, '!');

Дана строка 'a1a a22a a333a a4444a a55555a aba aca'. Напишите регулярку, которая найдет строки, в которых по краям стоят буквы 'a', а между ними любое количество цифр.

Решение:

'a1a a22a a333a a4444a a55555a aba aca'.replace(/a\d+a/, '!');

Дана строка 'aa a1a a22a a333a a4444a a55555a aba aca'. Напишите регулярку, которая найдет строки, в которых по краям стоят буквы 'a', а между ними любое количество цифр (в том числе и ноль цифр, то есть строка 'aa').

Решение:

'a1a a22a a333a a4444a a55555a aba aca'.replace(/a\d*a/, '!');

Дана строка 'avb a1b a2b a3b a4b a5b abb acb'. Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'a' и 'b', а между ними - не число.

Решение:

'avb a1b a2b a3b a4b a5b abb acb'.replace(/a\Db/, '!');

Дана строка 'ave a#b a2b a$b a4b a5b a-b acb'. Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'a' и 'b', а между ними - не буква и не цифра.

Решение:

'ave a#b a2b a$b a4b a5b a-b acb'.replace(/a\Wb/, '!');

Дана строка 'ave a#a a2a a$a a4a a5a a-a aca'. Напишите регулярку, которая заменит все пробелы на '!'.

Решение:

'ave a#b a2b a$b a4b a5b a-b acb'.replace(/\s/, '!');

На [], '^' - не, [a-zA-Z], кириллицу

Дана строка 'aba aea aca aza axa'. Напишите регулярку, которая найдет строки aba, aea, axa, не затронув остальных.

Решение:

'aba aea aca aza axa'.replace(/a[aex]a/, '!');

Дана строка 'aba aea aca aza axa a.a a+a a*a'. Напишите регулярку, которая найдет строки aba, a.a, a+a, a*a, не затронув остальных.

Решение:

'aba aea aca aza axa a.a a+a a*a'.replace(/a[b.+*]a/, '!');

Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'a', а между ними - цифра от 3-х до 7-ми.

Решение:

'a1a a2a a3a a4a a5a a6a a7a aba'.replace(/a[3-7]a/, '!');

Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'a', а между ними - буква от a до g.

Решение:

'aaa aba aca ada ana a6a aga '.replace(/a[a-g]a/, '!');

Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'a', а между ними - буква от a до f и от j до z.

Решение:

'aaa aba aca ada afa aza aga '.replace(/a[a-fj-z]a/, '!');

Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'a', а между ними - буква от a до f и от A до Z.

Решение:

'aaa aBa aca aDa afa aZa aga '.replace(/a[a-fA-Z]a/, '!');

Дана строка 'aba aea aca aza axa a-a a#a'. Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'a', а между ними - не 'e' и не 'x'.

Решение:

'aba aea aca aza axa a-a a#a'.replace(/a[^ex]a/, '!');

Дана строка 'wйw wяw wёw wqw'. Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'w', а между ними - буква кириллицы.

Решение:

'wйw wяw wёw wqw'.replace(/w[А-Яа-яЁё]w/', '!');

На [a-zA-Z] и квантификаторы

Дана строка 'aAXa aeffa aGha aza ax23a a3sSa'. Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'a', а между ними - маленькие латинские буквы, не затронув остальных.

Решение:

'aAXa aeffa aGha aza ax23a a3sSa'.replace(/a[a-z]+a/, '!');

Дана строка 'aAXa aeffa aGha aza ax23a a3sSa'. Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'a', а между ними - маленькие и большие латинские буквы, не затронув остальных.

Решение:

'aAXa aeffa aGha aza ax23a a3sSa'.replace(/a[a-zA-Z]+a/, '!');

Дана строка 'aAXa aeffa aGha aza ax23a a3sSa'. Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'a', а между ними - маленькие латинские буквы и цифры, не затронув остальных.

Решение:

'aAXa aeffa aGha aza ax23a a3sSa'.replace(/a[a-z0-9]+a/, '!');

Дана строка 'ааа ббб ёёё ззз ййй ААА БББ ЁЁЁ ЗЗЗ ЙЙЙ'. Напишите регулярку, которая найдет все слова по шаблону: любая кириллическая буква любое количество раз.

Решение:

'ааа ббб ёёё ззз ййй ААА БББ ЁЁЁ ЗЗЗ ЙЙЙ'.replace(/[А-Яа-яЁё]+#u', '!');

На '^', '$'

Дана строка 'aaa aaa aaa'. Напишите регулярку, которая заменит первое 'aaa' на '!'.

Решение:

'aaa aaa aaa'.replace(/^aaa/, '!');

Дана строка 'aaa aaa aaa'. Напишите регулярку, которая заменит последнее 'aaa' на '!'.

Решение:

'aaa aaa aaa'.replace(/aaa$/, '!');

На '|'

Дана строка 'aeeea aeea aea axa axxa axxxa'. Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'a', а между ними - или буква 'e' любое количество раз или по краям стоят буквы 'a', а между ними - буква 'x' любое количество раз.

Решение:

'aeeea aeea aea axa axxa axxxa'.replace(/ae+a|ax+a/, '!');

Дана строка 'aeeea aeea aea axa axxa axxxa'. Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы 'a', а между ними - или буква 'e' два раза или буква 'x' любое количество раз.

Решение:

'aeeea aeea aea axa axxa axxxa'.replace(/ae{2}a|ax+a/, '!');

На обратный слеш \

Дана строка 'a\a abc'. Напишите регулярку, которая заменит строку 'a\a' на '!'.

Решение:

'a\a abc'.replace(/a\\\\a/, '!');

Дана строка 'a\a a\\a a\\\a'. Напишите регулярку, которая заменит строку 'a\\\a' на '!'.

Решение:

'a\a a\\\a a\\\\\a'.replace(/a(\\\\){3}a/, '!');

На экранировку посложнее

Дана строка 'bbb /aaa\ bbb /ccc\'. Напишите регулярку, которая найдет содержимое всех конструкций /...\ и заменит их на '!'.

Решение:

'bbb /aaa\ bbb /ccc\'.replace(//.+\\\\/, '!');