加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 正则表达式 – 连续4位数,但不能全为零

发布时间:2020-12-13 22:55:00 所属栏目:百科 来源:网络整理
导读:我正在寻找一个可以用正则表达式完成的解决方案.我知道这将变得容易变量,子串等. 我正在寻找PCRE风格的正则表达式语法,即使我提到vim. 我需要识别4个数字的字符串,它们不能全为0.所以以下字符串将是一个匹配: 0001 1000 1234 0101 这不会: 0000 这是一个子
我正在寻找一个可以用正则表达式完成的解决方案.我知道这将变得容易变量,子串等.

我正在寻找PCRE风格的正则表达式语法,即使我提到vim.

我需要识别4个数字的字符串,它们不能全为0.所以以下字符串将是一个匹配:

0001 
1000 
1234 
0101

这不会:

0000

这是一个子字符串,将发生在大字符串中的设置位置,如果这很重要;我不认为应该.例如

xxxxxxxxxxxx0001xxxxx
xxxxxxxxxxxx1000xxxxx
xxxxxxxxxxxx1234xxxxx
xxxxxxxxxxxx0101xxxxx
xxxxxxxxxxxx0101xxxxx
xxxxxxxxxxxx0000xxxxx
(?<!d)(?!0000)d{4}(?!d)

或者更善意/可维护/正确地:

m{
     (?<! d   )    # current point cannot follow a digit
     (?!  0000 )    # current point must not precede "0000"
     d{4}          # match four digits at this point,provided...
     (?!  d   )    # that they are not then followed by another digit
}x

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读