Regex (Java) - нужна помощь в формулировании определенной строки шаблона - PullRequest
0 голосов
/ 23 февраля 2012

Я плохо отношусь к регулярным выражениям, так что, надеюсь, вы, ребята, сможете мне помочь.У меня есть строка с именем str, и я хочу убедиться, что она имеет следующую форму: это либо ничто, либо одно число (может быть любым числом цифр), либо любое количество чисел (каждое число может бытьлюбое количество цифр (например, с одним номером), разделенных символами ~.

Так, например, если бы str был одним из следующих, он был бы в правильной форме: "", "0",«123», «13 ~ 55», «123 ~ 4 ~ 121», «1 ~ 23 ~ 43 ~ 4».

Как именно я бы пошел о формировании строки шаблона регулярного выражения, которой str соответствуетэто было действительно?

Ответы [ 3 ]

7 голосов
/ 23 февраля 2012

Не может быть проще:

^(\d+~?)*$

См. Здесь в действии: http://regexr.com? 3041l

3 голосов
/ 23 февраля 2012

Правильным также может быть:

^(\d+(~\d)*)*$

Отличие от предыдущего ответа Джозефа Сильбера состоит в том, что этот не допускает строки, заканчивающейся символом ~.

0 голосов
/ 23 февраля 2012

Это?

^([0-9]+|(([0-9]+~)*[0-9]+))?$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...