regex 正则表达式检查4个连续数字

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

我能用吗

\d\d\d\d[^\d]

字符串
检查四个连续的数字吗
比如说,
好的:

  • 第一个月
  • 455553
  • 1200003
  • f44443
  • g55553
  • 3333

否:

  • f4442
  • 45553
  • f4444g4444
  • f44444444
ni65a41a

ni65a41a1#

如果你想在一个字符串中找到任何4位数的序列/\d\d\d\d//\d{4}/就可以了。如果你想找到一系列正好4位数的数字,使用/[^\d]\d{4}[^\d]/。如果字符串只包含4个连续的数字,则使用/^\d{4}$/
编辑:我想你想找到4个相同的数字,你需要一个反向引用。/(\d)\1{3}/可能是你要找的。
编辑2:/(^|(.)(?!\2))(\d)\3{3}(?!\3)/将只匹配恰好有4个相同连续数字的字符串。
第一组匹配字符串或任何字符的开头。然后有一个负向前看,它使用第一个组来确保后面的字符不匹配第一个字符(如果有的话)。第三组匹配任何数字,然后重复3次,并反向引用组3。最后,还有一个前瞻,确保后面的字符不匹配连续的数字序列。
这类事情在JavaScript中很难做到,因为你没有向前引用和向后查找之类的东西。

aemubtdh

aemubtdh2#

数字是字符串的一部分,还是只需要四个数字。在后一种情况下,regexp应该是^\d{4}$^标记字符串的开始,$标记字符串的结束。这可以确保,只有四个数字是有效的,在此之前或之后都没有。

yptwkmov

yptwkmov3#

它应该匹配四个数字(\d\d\d\d),后跟一个非数字字符([^\d])。如果只想匹配任意四位数,则应使用\d\d\d\d\d{4}。如果要确保字符串只包含四个连续的数字,请使用^\d{4}$^将指示正则表达式引擎在字符串的开头开始匹配,而$将指示正则表达式引擎在字符串的结尾停止匹配。

相关问题