Задачи для решения
На {}
Дана строка '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(//.+\\\\/, '!');