首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式捕获组为略有不同的文本返回错误结果

正则表达式捕获组为略有不同的文本返回错误结果
EN

Stack Overflow用户
提问于 2017-08-30 00:01:31
回答 1查看 73关注 0票数 2

我试图用一个捕获组编写一个PCRE,它在两个字符串中寻找数值。

案例A:

有/有一个线程(S)在总数是由这个阀门监测,并可能被卡住。

案例B:

有/仍然有10个线程(S)是由这个阀门监测和可能卡住。

我已经编写了一个正则表达式,当在case A上运行时,它返回"1",但是对于B,它返回错误的结果“仍然”。我如何写一个将返回"1“的A和"10”的B?

我现在拥有的是:

代码语言:javascript
复制
There\s+is.are\s+(?<threadNumber>[^\s]+)]
EN

回答 1

Stack Overflow用户

发布于 2017-08-30 00:06:11

您可以在数字部分之前添加一个可选的(?:\S+\s+)?,以匹配可选的"word“,并且只使用\d+匹配数字:

代码语言:javascript
复制
There\s+is.are\s+(?:\S+\s+)?(?<threadNumber>\d+)
                 ^^^^^^^^^^^                ^^^

regex演示

详细信息

  • There -一个文字子字符串
  • \s+ -1或更多空白空间
  • is -一个文字子字符串
  • . -除断行字符以外的任何字符
  • are -一个文字子字符串
  • \s+ -1或更多空白空间
  • (?:\S+\s+)? -一个可选的序列:
    • \S+ - 1+非空白字符
    • \s+ -1或更多空白空间

  • (?<threadNumber>\d+) -1或更多位数(threadNumber组)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45949969

复制
相关文章

相似问题

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