Регулярные выражения

Знак

Значение

Пример

.

Любой одинарный символ, кроме переноса строки (\n)

\d

Цифровой символ

[0-9]

\D

Не цифровой символ

\s

Пробельный символ, дополнительно включает в себя символы: \t - табуляция, \n - перенос строки, \v - вертикальная табуляция, \f - конец файла, \r - возврат каретки.

\S

Все, кроме: символов пробела, табуляции, переноса строки, вертикальной табуляции, конца файла, возврата каретки.

\w

Цифры, английские буквы, символ нижнего подчеркивания "_"

[a-zA-Z0-9]

\W

Не цифры, английские буквы, символ нижнего подчеркивания "_"

\b

Граница слова, между началом текста и словом, между словом и словом, между не словом и словом, между словом и концом текста.

\B

Все, кроме границ слова, например внутри слова

[ ]

Любой из набора внутри кавычек

[^ ]

Любой не входящий в набор

[а-я] не исключает ё. надо - [a-ё]

a-b

"-" диапазон, находит первое вхождение

\p{ }

Поиск Юникода, используется с флагом "u"

\p{Sc}

Квантификаторы

{ n - n+1}

Количество поисков. Старается повториться наибольшее количество повторений. В выражении /d{3, 4} для "10000" выберет "1000" (жадный)

{1-3} от одного до трех; {3, 4} три или четыре

{ n - n+1}?

В выражении /d{3, 4}? для "10000" выберет "100" (ленивый)

{3, } от трех до бесконечности;

*

Повторить от 0 до до бесконечности

+

Повторить от 1 до до бесконечности

?

Повторить от 0 до 1

()

Скобочная группа. К группе можно применять квантификаторы.

(?:[ ]) - скобочная группа исключенная из запоминания

\N

Обратная ссылка в шаблоне, применяется к скобочным группам, где N номер скобочной группы.

(....)(....)\1

(?<name>)

Имя скобочной группы (name)

(?<sep>....)(.../k<sep>)

X(?=Y)

Находит Х, если за ним следует Y

X(!=Y)

Находит Х, если за ним НЕ следует Y

(?<=Y)X

Находит Х, если следует за Y

(?<!Y)X

Находит Х, если НЕ следует за Y

|

Знак альтернации используется в качестве ИЛИ

b|d - найти "b" или "d"

Флаги: /регулярное выражение/флаг

g

Поиск глобально, т.е. не останавливается после найденного значения

s

С этим флагом "." обозначает любой символ, включая перенос строки

i

Не зависит от регистра

y

указывает что необходимо производить поиск на указанной позиции(через lastindex).

u

Поиск Юникода, поддерживается не во всех браузерах

m

Выполнять поиск для каждой строчки

Якоря

^

Начало текста или строки, если есть флаг "m"

$

Конец текста или строки, если есть флаг "m"

Объявление

let rg = /регулярное выражение/флаг
let rg = new RegExp('регулярное выражение', 'флаг')

Методы для строк

match - выводит результат в массив. Если значение одно, то результат - объект, если значений много, то результат массив из "результата" поиска.

matchAll - если значений много, то результат массив из массивов. Поддерживают не все браузеры.

search - В случае если поиск удачный, то выводит номер, где нашел. В случае если совпадения нет, то -1.

split - разбивает текст на массив подстрок.

replace - находит и заменяет подстроку в строке. Имеет ряд специальных символов. $& - вставляет все найденные совпадения. $` - вставляет все, что было найдено до совпадения. $' - вставляет все, что было найдено после совпадения. $1 $2 $N - Обратная ссылка в шаблоне, где N это номер скобочной группы. $<name> - Обратная ссылка в шаблоне, где name это имя скобочной группы.

Методы для регулярного выражения

exec -

lastindex - начинает поиск с указанной позиции.

test - если текст совпадает с регулярным выражением, то возвращается true

Видеоуроки

https://www.youtube.com/watch?v=pSdXUgOLpwo

Last updated