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

| Знак        | Значение                                                                                                                                                            | Пример                                                   |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| .           | Любой одинарный символ, кроме переноса строки (\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"                                                                                                                         |                                                          |

### Объявление

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

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

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

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

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

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

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

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

exec -&#x20;

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

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

### Видеоуроки

[https://www.youtube.com/watch?v=pSdXUgOLpwo](https://www.youtube.com/watch?v=pSdXUgOLpwo)

