我尝试了不同的regex,但它们不起作用。
例如:
1111 = false
1112 = true
这是我的家庭作业,所以我必须用正则表达式:)
您可以使用以下正则表达式:
^(d)(?!1+$)d{3}$
解释:
^
-匹配线开始(d)
-匹配第一个数字,并将其捕获在后参考#1中,即1
(?!..)
是负面展望(?!1+$)
表示如果第一个数字后面跟同一个数字(捕获的组),则禁止匹配直到结束d{3}$
匹配下一个3位数字,后跟行尾
这个怎么样?
(?=^d{4}$)(d)+(?!1)dd*
第一个前瞻组(?=^d{4}$)
坚持认为整个字符串由4位数字组成。
然后,第一个捕获组匹配任意数量的数字:(d)+
。
在此之后,必须有一个不同于第一个捕获组的数字:(?!1)d
最后,后面可以有任意数量的数字:d*