首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >负前瞻正则表达式直到数,但没有连续的0

负前瞻正则表达式直到数,但没有连续的0
EN

Stack Overflow用户
提问于 2014-03-19 09:01:53
回答 1查看 195关注 0票数 3

我正在提取一串3到6个数字的字符串。但是,我不想包括一个连续超过3个0的数字。

现在我得到的是一个常规的前瞻性,但是如何实现零部分呢?

代码语言:javascript
复制
(\d{3,6})[:|\s]{0,2}([a-zA-Z]{3})((?:(?!\d{3,6}).)*)

示例输入:

代码语言:javascript
复制
010113 tee Some text for a 1000 reasons 020113 mee More text

所以输入是[3-6 numbers] [3 letter identifier] [message]格式的(重复)

我需要它来匹配字符串直到020113,而不仅仅是1000

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-19 09:14:35

您可以嵌套前瞻性断言:

代码语言:javascript
复制
((?:(?!(?!\d*000)\d{3,6}).)*)

解释:

代码语言:javascript
复制
(             # Match/capture in group 1:
 (?:          # Start of non-capturing group.
  (?!         # Assert that it's impossible to match...
   (?!\d*000) # (unless it's a number that contains 000)
   \d{3,6}    # a number of three to six digits here.
  )           # End of lookahead
  .           # Match any character
 )*           # End of non-capturing group, repeat any number of times
)             # End of capturing group 1

看吧,在regex101.com上直播

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22500719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档