Книга: Выразительный JavaScript
Итог
Итог
Регулярки – это объекты, представляющие шаблоны поиска в строках. Они используют свой синтаксис для выражения этих шаблонов.
/abc/
Последовательность символов
/[abc]/
Любой символ из списка
/[^abc]/
Любой символ, кроме символов из списка
/[0-9]/
Любой символ из промежутка
/x+/
Одно или более вхождений шаблона x
Одно или более вхождений, нежадное
/x+?/
/x*/
Ноль или более вхождений
/x?/
Ноль или одно вхождение
/x{2,4}/
От двух до четырёх вхождений
/(abc)/
Группа
/a|b|c/
Любой из нескольких шаблонов
/d/
Любая цифра
/w/
Любой алфавитно-цифровой символ («буква»)
/s/
Любой пробельный символ
/./
Любой символ, кроме переводов строки
/b/
Граница слова
/^/
Начало строки
/$/
Конец строки
У регулярки есть метод test
, для проверки того, есть ли шаблон в строке. Есть метод exec
, возвращающий массив, содержащий все найденные группы. У массива есть свойство index
, показывающее, где начался поиск.
У строк есть метод match
для поиска шаблонов, и метод search
, возвращающий только начальную позицию вхождения. Метод replace
может заменять вхождения шаблона на другую строку. Кроме этого, вы можете передать в replace
функцию, которая будет строить строчку на замену, основываясь на шаблоне и найденных группах.
У регулярок есть настройки, которые пишут после закрывающего слэша. Опция i
делает регулярку регистронезависимой, а опция g
делает её глобальной, что, кроме прочего, заставляет метод replace
заменять все найденные вхождения, а не только первое.
Конструктор RegExp
можно использовать для создания регулярок из строк.
Регулярки – острый инструмент с неудобной ручкой. Они сильно упрощают одни задачи, и могут стать неуправляемыми при решении других, сложных задач. Часть умения пользоваться регулярками состоит в том, чтобы уметь сопротивляться искушению запихнуть в них задачу, для которой они не предназначены.
- Создаём регулярное выражение
- Проверяем на совпадения
- Ищем набор символов
- Повторяем части шаблона
- Группировка подвыражений
- Совпадения и группы
- Тип даты
- Границы слова и строки
- Шаблоны с выбором
- Механизм поиска
- Откаты
- Метод replace
- Жадность
- Динамическое создание объектов RegExp
- Метод search
- Свойство lastIndex
- Циклы по вхождениям
- Разбор INI файлы
- Международные символы
- Итог
- Упражнения