Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Регулярное выражение "Поиск поддомена" (https://javascript.ru/forum/css-html/69471-regulyarnoe-vyrazhenie-poisk-poddomena.html)

corsik 26.06.2017 13:42

Регулярное выражение "Поиск поддомена"
 
Подскажите, как мне написать регулярку которая будет искать искать только строки такого типа:
Например: 3ds.bank.ru, 3dsp.bank.ru

Значение 3ds должно быть обязательным, после него может быть от еще от 1 до 2х символов.

Написал:
3ds?\w{1,2}\.\w{1,10}\.(ru|com)

Но мая регулярка пропускает букву S делая её не обязательной.

Пол дня бьюсь не могу понять в чем дело.

laimas 26.06.2017 13:49

Цитата:

Сообщение от corsik
Но мая регулярка пропускает букву S делая её не обязательной.

Пол дня бьюсь не могу понять в чем дело.

Убрать ? после s. Учтите, набор w содержит и цифры, и символ подчеркивания.

corsik 26.06.2017 13:58

Цитата:

Сообщение от laimas
Убрать ? после s

Не катит, символы после 3ds могут быть, а могут и не быть. Это не обязательное требование.

laimas 26.06.2017 14:09

Цитата:

Сообщение от corsik
символы после 3ds могут быть, а могут и не быть

В вашем шаблоне это условие задается как раз символу s.

corsik 26.06.2017 14:13

Цитата:

Сообщение от laimas (Сообщение 456524)
В вашем шаблоне это условие задается как раз символу s.

А как мне задать это условие на следующие символы? Чтобы далее могли бы быть или не быть это 1-2 символа?

т.е. 3ds обязательно, а далее может быть или не быть например p1?

laimas 26.06.2017 14:24

3ds\w{0,2}\.\w{1,10}\.(ru|com)

Если подчеркивания не допустимы, то вместо \w нужно [0-9a-z], и если допускается различие регистра, то шаблон должен иметь флаг i.

corsik 26.06.2017 15:59

Спасибо, последний вопрос.
Такая правильно будет если проверять в начале еще присутствие www?
(www\.)?acs[0-9a-z]{0,2}\.\w{1,10}\.(ru|com)

j0hnik 26.06.2017 16:07

Цитата:

Сообщение от corsik (Сообщение 456553)
Спасибо, последний вопрос.
Такая правильно будет если проверять в начале еще присутствие www?
(www\.)?acs[0-9a-z]{0,2}\.\w{1,10}\.(ru|com)

просто предполагает что оно может быть, но не обязательно.

laimas 26.06.2017 16:13

Цитата:

Сообщение от corsik
Такая правильно будет если проверять в начале еще присутствие www?

Да, только почему не 3ds? И как понять [0-9a-z] и \w? Может все-таки:

(www\.)?3ds[\da-z]{0,2}\.[\da-z]{1,10}\.(ru|com)

?


Часовой пояс GMT +3, время: 06:53.