regex 不允许给定字符集的重复

bjg7j2ky  于 2023-05-08  发布在  其他
关注(0)|答案(3)|浏览(120)

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

". / - ( )"

例如:

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

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

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

xbp102n01#

您可以用途:

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

DEMO
说明:

klr1opcd

klr1opcd2#

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

这简单地否定了正则表达式[\/().-]{2},如果你的两个字符彼此相邻,则该正则表达式匹配。
有关详细说明,请参见this answer
Live demo

jgzswidk

jgzswidk3#

也许用其他方法更容易,匹配你不想允许的字符串。

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

相关问题