在下面的示例中,我正在验证这4个字符的文本是否包含一个空格或连字符(-),或者没有,也只有4个字符。
Regex : ^[A-Z0-9]{4}$|(?=^.{4}$)^[A-Z0-9]+[- ]?[A-Z0-9]+$ 它按照下面的情况工作,但未能验证文本包含所有相同字符,如1111,AAAA是不允许的。
1234 valid
12-4 valid
12 4 valid
1111 invalid ( as all are the same characters)
11-1 invalid ( as all are the same characters)
12345 invalid发布于 2022-09-27 06:38:09
您可以使用此正则表达式来匹配字符串:
^(?=[A-Z0-9]+[ -]?[A-Z0-9]+$)(?!([A-Z0-9])(?:\1|[ -]){3}).{4}$Regex解释:
^开始(?=[A-Z0-9]+[ -]?[A-Z0-9]+)断言该字符串由一个或多个A-Z0-9、可选或-和一个或多个A-Z0-9组成。(?!([A-Z0-9])(?:\1|[ -]){3})断言,第一个字符并不是在有一个字符的每个位置上重复的。.{4}$只匹配字符串开始和结束之间的4个字符。https://stackoverflow.com/questions/73863007
复制相似问题