# Наборы символов в регулярных выражениях JavaScript

Группы символов `\d` и `\w` не очень гибкие. Даже такая простая задача, как найти все буквы, но не цифры - не может быть решена ими. Для таких задач следует использовать квадратные скобки, представляющие собой операцию `'или'`.

Квадратные скобки заменяют собой один символ, любой из перечисленных внутри. К примеру, вот так: `/x[abc]x/` - мы говорим, что по краям должны стоять буквы икс, а внутри - один символ: или `'a'`, или `'b'`, или `'c'`.

После квадратных скобок можно писать операторы повторения. К примеру, вот так: `/x[abc]+x/` - мы говорим, что внутри иксов может быть любое количество символов `'a'`, `'b'` и `'c'` - в любых комбинациях.

Можно не только перечислять символы, но создавать группы символов, записывая между двумя символами дефис. К примеру, вот так: `[a-d]` - мы получаем все символы от `'a'` до `'d'`.

Давайте посмотрим на примерах.

## Пример

В данном примере шаблон поиска выглядит так: между иксами любая буква от `'a'` до `'z'`:

`let str = 'xax xbx xcx x@x'; let res = str.replace(/x[a-z]x/g, '!');`

В результате в переменную запишется следующее:

`'! ! ! x@x'`

## Пример

В данном примере шаблон поиска выглядит так: между иксами любая буква от `'a'` до `'k'`:

`let str = 'xax xbx xmx x@x'; let res = str.replace(/x[a-k]x/g, '!');`

В результате в переменную запишется следующее:

`'! ! xmx x@x'`

## Пример

В данном примере шаблон поиска выглядит так: между иксами любая буква от `'A'` до `'Z'`:

`let str = 'xax xBx xcx x@x'; let res = str.replace(/x[A-Z]x/g, '!');`

В результате в переменную запишется следующее:

`'xax ! xcx x@x'`

## Пример

В данном примере шаблон поиска выглядит так: между иксами любая цифра от `0` до 9:

`let str = 'xax x1x x3x x5x x@x'; let res = str.replace(/x[0-9]x/g, '!');`

В результате в переменную запишется следующее:

`'xax ! ! ! x@x'`

## Пример

В данном примере шаблон поиска выглядит так: между иксами любая цифра от `3` до 7:

`let str = 'xax x1x x3x x5x x@x'; let res = str.replace(/x[3-7]x/g, '!');`

В результате в переменную запишется следующее:

`'xax x1x ! ! x@x'`

## Пример

В данном примере шаблон поиска выглядит так: между иксами любая буква от `'a'` до `'z'` или цифра от `1` до 9:

`let str = 'xax x1x x3x x5x x@x'; let res = str.replace(/x[a-z1-9]x/g, '!');`

В результате в переменную запишется следующее:

`'! ! ! ! x@x'`

## Пример

В данном примере шаблон поиска выглядит так: между иксами любая буква от `'a'` до `'z'` или буква от `'A'` до `'Z'`:

`let str = 'xax xBx xcx x5x x@x'; let res = str.replace(/x[a-zA-Z]x/g, '!');`

В результате в переменную запишется следующее:

`'! ! ! x5x x@x'`

## Пример

В данном примере шаблон поиска выглядит так: между иксами любая буква от `'a'` до `'z'` или цифры `1`, 2:

`let str = 'xax xbx x1x x2x x3x'; let res = str.replace(/x[a-z12]x/g, '!');`

В результате в переменную запишется следующее:

`'! ! ! ! x3x'`

## Пример

В данном примере шаблон поиска выглядит так: между иксами буквы от `'a'` до `'z'` в количестве от `1` и более:

`let str = 'xx xabesx xaadx x123x xa3x'; let res = str.replace(/x[a-z]+x/g, '!');`

В результате в переменную запишется следующее:

`'xx ! ! ! x123x xa3x'`

## Пример

Сделаем так, чтобы количество букв могло быть и ноль:

`let str = 'xx xabesx xaadx x123x xa3x'; let res = str.replace(/x[a-z]*x/g, '!');`

В результате в переменную запишется следующее:

`'! ! ! ! x123x xa3x'`

## Практические задачи

Дана строка:

`let str = 'aba aea aca aza axa';`

Напишите регулярку, которая найдет по следующему шаблону: по краям стоят буквы `'a'`, а между ними - буква `'b'`, `'e'` или `'x'`.

Дана строка:

`let str = 'a1a a3a a7a a9a aba';`

Напишите регулярку, которая найдет по следующему шаблону: по краям стоят буквы `'a'`, а между ними - цифра от `3`-х до `6`-ти.

Дана строка:

`let str = 'aba aea afa aha aga';`

Напишите регулярку, которая найдет по следующему шаблону: по краям стоят буквы `'a'`, а между ними - буква от a до g.

Дана строка:

`let str = 'aba aea afa aha aga';`

Напишите регулярку, которая найдет по следующему шаблону: по краям стоят буквы `'a'`, а между ними - буква от a до f и от j до z.

Дана строка:

`let str = 'aAa aea aEa aJa a3a';`

Напишите регулярку, которая найдет по следующему шаблону: по краям стоят буквы `'a'`, а между ними - буква от a до f и от A до D.

Дана строка:

`let str = 'aAXa aeffa aGha aza ax23a a3sSa';`

Напишите регулярку, которая найдет по следующему шаблону: по краям стоят буквы `'a'`, а между ними - маленькие латинские буквы, не затронув остальных.

Дана строка:

`let str = 'aAXa aeffa aGha aza ax23a a3sSa';`

Напишите регулярку, которая найдет по следующему шаблону: по краям стоят буквы `'a'`, а между ними - маленькие и большие латинские буквы, не затронув остальных.

Дана строка:

`let str = 'aAXa aeffa aGha aza ax23a a3sSa';`

Напишите регулярку, которая найдет по следующему шаблону: по краям стоят буквы `'a'`, а между ними - маленькие латинские буквы и цифры, не затронув остальных.

← →
↑
en ru