不允许重复给定的字符集

时间:2014-01-27 12:23:28

标签: regex

我需要创建一个正则表达式,它将拒绝彼此相邻的任何给定字符的字符串

". / - ( )"

例如:

123()123 - false
123--123 - false
124((123 - false
123(123)123-12-12 - true

这是我到目前为止所做的:

(?:([\/().-])(?!.*\1))

3 个答案:

答案 0 :(得分:1)

^((?![\/().-]{2}).)*$

如果你的两个角色彼此相邻,这只会否定匹配的正则表达式[\/().-]{2}

有关详细说明,请参阅this answer

Live demo

答案 1 :(得分:1)

您可以使用:

(^(?:(?![.\/()-]{2}).)*$)

<强> DEMO

说明:

enter image description here

答案 2 :(得分:0)

也许以其他方式更容易做到,匹配你不想允许的字符串。

if match [.\/()-]{2}
   not allowed
else
   allowed
end