2015-02-24 4 views
1

мне нужно проверить вход на определенной схеме (xxxx.xx.xx)
например: 1234.12.34, 2.3.5, 22.22,1.0.3Регулярное выражение слияния необходимо

Я сделал эти правила

\d{0,4} 
\d{0,4}\.\d{1,2} 
\d{0,4}\.\d{1,2}\.\d{1,2} 

Есть ли способ объединить 3 правила в один?
Я думал об использовании оператора ?, вложенного в более поздние части, но я не мог понять правильный синтаксис любые указатели оцениваются
спасибо.

ответ

1
^(?:\d{0,4}|\d{0,4}\.\d{1,2}|\d{0,4}\.\d{1,2}\.\d{1,2})$ 

Try this.See demo.

https://regex101.com/r/aI4rA5/1

| или оператора, что вам нужно.

+0

это было быстро! Большое спасибо :) Принимаю за 10 минут – Katia

2

Вы можете попробовать ниже,

^\d{0,4}(?:(?:\.\d{1,2})?\.\d{1,2})?$ 

DEMO

? превратит предыдущий маркер в качестве факультативных. И не путайте ? в группе, не участвующей в съемке.

(?:...)non-capturing group который будет соответствовать только. Он не будет захватывать никаких символов. последний ? в этом (?:\.\d{1,2})? рисунках будет показан весь узор, то есть (?:\.\d{1,2}) в качестве дополнительного.

^ утверждает, что мы находимся на старте, и $ утверждает, что мы в конце.

+0

Что означает ':'? – Katia

Смежные вопросы