>/x*/
Ноль или более вхождений
>/x?/
Ноль или одно вхождение
>/x{2,4}/
От двух до четырёх вхождений
>/(abc)/
Группа
>/a|b|c/
Любой из нескольких шаблонов
>/\d/
Любая цифра
>/\w/
Любой алфавитно-цифровой символ («буква»)
>/\s/
Любой пробельный символ
>/./
Любой символ, кроме переводов строки
>/\b/
Граница слова
>/^/
Начало строки
>/$/
Конец строки
У регулярки есть метод >test
, для проверки того, есть ли шаблон в строке. Есть метод >exec
, возвращающий массив, содержащий все найденные группы. У массива есть свойство >index
, показывающее, где начался поиск.
У строк есть метод >match
для поиска шаблонов, и метод >search
, возвращающий только начальную позицию вхождения. Метод >replace
может заменять вхождения шаблона на другую строку. Кроме этого, вы можете передать в >replace
функцию, которая будет строить строчку на замену, основываясь на шаблоне и найденных группах.
У регулярок есть настройки, которые пишут после закрывающего слэша. Опция >i
делает регулярку регистронезависимой, а опция >g
делает её глобальной, что, кроме прочего, заставляет метод >replace
заменять все найденные вхождения, а не только первое.
Конструктор >RegExp
можно использовать для создания регулярок из строк.
Регулярки – острый инструмент с неудобной ручкой. Они сильно упрощают одни задачи, и могут стать неуправляемыми при решении других, сложных задач. Часть умения пользоваться регулярками состоит в том, чтобы уметь сопротивляться искушению запихнуть в них задачу, для которой они не предназначены.
Неизбежно при решении задач у вас возникнут непонятные случаи, и вы можете иногда отчаиваться, видя непредсказуемое поведение некоторых регулярок. Иногда помогает изучить поведение регулярки через онлайн-сервис типа debuggex.com, где можно посмотреть её визуализацию и сравнить с желаемым эффектом.
«Гольфом» в коде называют игру, где нужно выразить заданную программу минимальным количеством символов. Регулярный гольф – практическое упражнение по написанию наименьших возможных регулярок для поиска заданного шаблона, и только его.
Для каждой из подстрочек напишите регулярку для проверки их нахождения в строке. Регулярка должна находить только эти указанные подстроки. Не волнуйтесь насчёт границ слов, если это не упомянуто особо. Когда у вас получится работающая регулярка, попробуйте её уменьшить.
1 car и cat
2 pop и prop
3 ferret, ferry, и ferrari
4 Любое слово, заканчивающееся на ious
5 Пробел, за которым идёт точка, запятая, двоеточие или точка с запятой.
6 Слово длиннее шести букв
7 Слово без букв e
>// Впишите свои регулярки