2013-10-11 3 views
-1

Мы должны проверить, разделенные запятые строк с помощью регулярных выражений с определенными правилами проверок:Validate строки, используя регулярное выражение

  1. помимо буквенно-цифровых значений, допустимо только маркера запятой, двоеточие, пробел и дефис
  2. если мы иметь двоеточие (:) в подстроке:
    • длина строки с обеих сторон должна совпадать.
    • Позиция пространства или дефиса (только разрешенные) с обеих сторон также должна совпадать.
    • Строка с обеих сторон не может начинаться/заканчиваться - или пробелом.

Вот пример правильной строки:

asd asds:121 asdd,qrt-123:rwt-wqe,ADER*,AASD 

годные:

  • 100а
  • 100test *
  • 100а, 100а, 100а *
  • 100-1 000: 300-ASDS
  • ASD ASDS: 121 asdd, QRT-123: RWT-ЧКЕ

Инвалиды являются:

  • 100a * ш
  • 100-10: 10-10
  • сентябре J: се р^
  • 100-10: 100-10, ABC DER: AB CD

Это что мы пробовали до сих пор, но он принимает только заботу об основах:

[0-9a-zA-Z\-:\* ]{1,20}([,|\n|\r][0-9a-zA-Z\-:\* ]{1,20})* 

Я новичок в мире регулярных выражений, пожалуйста, вы можете помочь мне создать для этого?

+3

Вместо того, чтобы давать случайные примеры, что такое _rules_ для вашей 'String'? Какой двигатель регулярного выражения вы используете? –

+3

Этот вопрос выглядит не по теме, потому что он просто запрашивает код без каких-либо предварительных собственных усилий. – CBroe

+0

Я обновил вопрос с точным заявлением о проблеме и моими усилиями. Пожалуйста, ответьте. –

ответ

0
  • длина строки с обеих сторон должны соответствовать
  • Положение пространства или дефис (только те, которые разрешено) на обе стороны должны также соответствовать.

Вы не можете сделать это с помощью регулярного выражения. Подумайте о написании простого анализатора конечных автоматов для достижения своей цели. Это также было бы более удобным.

+1

Спасибо. Мы написали функцию java-script для достижения этого. Большое вам спасибо за помощь. –

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