updated regex cheatsheet

This commit is contained in:
cheatsnake 2022-10-18 17:39:24 +03:00
parent d04f077d00
commit 90bad24452

View File

@ -104,7 +104,7 @@
### Количество повторений `{}`
Чтобы указать точное количетво повторений, необходимо после символа записать фигурные скобки с нужным числом.
Чтобы указать точное количеcтво повторений, необходимо после символа записать фигурные скобки с нужным числом.
```js
/bo{3}m/g
@ -114,7 +114,7 @@
### Диапазон повторений `{,}`
Чтобы указать диапазон повторений, необходимо после символа записать фигурный скобки с нужным диапазоном разделенным запятой.
Чтобы указать диапазон повторений, необходимо после символа записать фигурный скобки с нужным диапазоном, разделенным запятой.
```js
/lo{2,4}k/g
@ -122,4 +122,48 @@
> lok <ins>look</ins> lk <ins>loook</ins> <ins>looook</ins> loooooook
Верхнюю границу можно опускать. Например, запись `a{3,}` говорит о том, что символ _a_ должен втречаться не менее трёх раз.
Верхнюю границу можно опускать. Например, запись `a{3,}` говорит о том, что символ _a_ должен встречаться не менее трёх раз.
### Группировка `()`
Скобки позволяют сгруппировать любую последовательность символов, чтобы в дальнейшем обращается к ним используя выражение `\число`, где число - порядковый номер сгруппированной последовательности.
```js
/(la)-\1{2}-\1{3}/g // Группируем выражение "la" и затем, обращаемся к нему через "\1"
```
> la-laaa-<ins>la-lala-lalala</ins>-lalala-la-la-la
```js
/(la)-\1-(laa)-\2/g
```
> laa-la-laa-<ins>la-la-laa-laa</ins>-lalal
Чтобы игнорировать сохранение группы используется конструкция `(?:)`.
```js
/(?:abc)-(test),\1,\1/g // В данном случае группа "abc" не будет сохранена, поэтому первый индекс указывает на "test".
```
> abc,test-<ins>abc-test,test,test</ins>-abc-test
Группам можно задавать любые имена. Для этого используется конструкция - `(?P<Name>...)`, где Name - название, ... - любая последовательность символов. Для обращения к именованным группам используется конструкция - `(?P=Name)`.
```js
/(?P<seven>7{3})-(?P=seven){2}-(?P=seven)/g
```
> 7777-77-7777777-<ins>777-777777-777</ins>-777-7-7-7-7777-7
Если у Вас возникли трудности с пониманием группировки, советую [посмотреть данное видео](https://youtu.be/W9CffcsYpAU).
### Логическое ИЛИ `|`
Вертикальная черта позволяет указывать альтернативные варианты для поиска. Это чем-то похоже на использование квадратных скобок `[abc]`, но только вертикальная черта может работать с целыми словами и выражениями, а не только с отдельными символами.
```js
/yes|no/g
```
> <ins>yes</ins>,maybe,<ins>no</ins>,idk,ok