2016-05-15 4 views
1

Как создать правильное правило регулярного выражения для следующих правил?Правило регулярных выражений для списка слов

  • Должно содержать хотя бы одно число.
  • Должен содержать хотя бы один буквенный символ a-z.
  • Не более 4 одинаковых номеров или букв в строке.

Любые идеи? Спасибо!

+0

" Не более 4 непрерывного числа или буквы в строке. Не более 4 одинаковых номеров или букв в строке " , - Я думаю, что его можно суммировать: не более 4 одинакового числа или буквы подряд. – MaxG

ответ

2

Использование lookaheads и back referencing:

^(?=.*[a-z])(?=.*\d)(?!.*(.)\1{3}).*$ 

Regex101

Edit: Если вы не хотите, чтобы соответствовать строки, которые имеют белые символы пробела, вы можете сделать:

^(?=.*[a-z])(?=.*\d)(?!.*(.)\1{3})\S*$ // replaced the . at the end with \S 
+0

, вы мотивируете меня, наконец, узнать взгляды и обратную связь :) – Gewure

+1

@Gewure Рад помочь. Вы находитесь в правильном месте для обучения регулярному выражению в целом. Существует бесконечное предложение вопросов и ресурсов регулярных выражений на SO. – timolawl

+0

@timolawl Хорошая работа, но она не обрабатывает выражения вроде этого: «qave4444». Любая идея почему? (Я не знаю, смотрю и обратно). – MaxG

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