【发布时间】:2015-02-15 13:58:27
【问题描述】:
如何使用 RegEx 测试以下模式:
- 字符串长度必须为 4-10 个字符
- 字符串不能有任何重复 字符(两个字符不能相同且相邻)
我对此进行了研究,我认为我很接近:
^(?!(.)\1).{4,10}$
这将正确找到ab12 和12ab 的匹配项。它还正确拒绝了1111 和aaaa。但是它错误地接受了12aa 和ab11。
它似乎只寻找字符串开头的重复字符。我试图移动或删除^ 和$,但我需要它们来进行最大字符检查。我还尝试了(.)\1 的几种变体来查找重复字符,但没有运气。
任何帮助或提示将不胜感激。
PS - 如果有人知道答案,我实际上希望最多允许一对重复字符,但我认为这太难了,并决定禁止任何重复字符。
【问题讨论】:
标签: regex string match string-matching