Регулярное выражение с повторением? - PullRequest
2 голосов
/ 10 августа 2010

Мне нужно регулярное выражение, которое принимает только цифры и точки, с этими условиями:

  1. между цифрами три должна быть только одна точка '132.632.55'
  2. цифры могут повторяться между двумя точками .112234563456789.
  3. строка начинается с цифр
  4. цифр с "." как это '123346547987.' может повторяться много раз
  5. длина этих цифр меньше 50 символов

Например: 123456.258469.5467.15546

Ответы [ 2 ]

5 голосов
/ 10 августа 2010

Учитывая всю информацию в вопросе, я думаю, что это регулярное выражение вам нужно:

^(\d{1,50}\.)*\d{1,50}$

Это будет:

  • требует, чтобы строка начиналась и заканчивалась цифрой
  • не требуют, чтобы там вообще была точка
  • убедитесь, что каждая последовательность цифр между точками не длиннее 50 цифр

Если вам нужна хотя бы одна точка, замените * на +:

^(\d{1,50}\.)+\d{1,50}$
1 голос
/ 10 августа 2010

Из того, что я могу сказать из ваших требований, вы хотите что-то вроде этого:

^(\d{1,50}\.)*\d{1,50}$

То есть от одной до 50 цифр, необязательно, перед любым числом групп от одной до 50 цифр, за каждой группой следует точка полного останова. Я не могу точно сказать, хотите ли вы, чтобы что-то вроде 1233.456 было недействительным, поскольку ваше требование № 2 подразумевает, что только группы цифр между точками могут содержать повторяющиеся цифры. В таком случае было бы намного проще выполнить проверку отдельных групп цифр после факта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...