正则表达式REGEX 4位PIN码,其中至少有一个与其他代码不同



我尝试了不同的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*

相关内容

最新更新