2014-09-23 7 views
-1

Я не уверен, как удвоить число цифр регулярных выраженийRegex помощь ## # ## ##

Это то, что я до сих пор [01-99]\.[0-4]\.[01-99]\.[01-99]

Ниже следует проверить:

  • 99.3.24.53
  • 01.0.0.0
  • 14.0.0.0
  • 14.0.01.01
  • 14.01.01.1

Любое письмо не должно проверяться, без следов. Просто цифры и периоды в этом конкретном формате ##. #. ##. ##

Любая помощь будет принята с благодарностью!

+1

Вы хотите разрешить '14.01.01.1'? –

+0

Это нормально, но только до ##. 04. ##. ## – Andrew

+2

'[01-99]' означает соответствие либо символу '0', либо любому символу в диапазоне от 1 до 9, либо символ '9'. Он будет в любом случае соответствовать только 1 символу. Вероятно, это не то, что вы пытаетесь сделать. – Sneftel

ответ

1

Это соответствует все ваши примеры :

\d{2}\.0?[0-4]\.\d{1,2}\.\d{1,2} 

Я не уверен, как удвоить число цифр регулярных выражений

Если вы нормально с ведущими нулями: \d{1,2}

Если вы не в порядке с ведущими нулями, это немного сложнее: ^[1-9]\d$|^[1-9]$. Часть перед трубой обрабатывает цифры 10-99. Часть после трубы обрабатывает цифры 1-9. Число, подобное 0 или 04, не будет соответствовать.

+0

Могу ли я узнать, почему op указывает этот' [01-99] 'на первый? –

+0

@ Avinash Raj. Из примеров, которые дает OP, OP, вероятно, хотел бы сопоставить все числа от 0 до 99. Очевидно, что отдельные цифры могут иметь или не иметь начальный ноль. Я дал эквивалент Regex этого как '\ d {1,2}'. – user2023861

+0

Это правильно. Я не знал, как указать 01 или 1 - 99 – Andrew

0

зонд это

[0-9][0-9]\.[0-9][0-9]?\.[0-9][0-9]?\.[0-9][0-9]? 

Так что теперь он будет соответствовать ##. #. ##. ## и ##. ##. ##. ##

+0

Это не соответствует '14.01.01.1' – user2023861