正则表达式正面看后,忽略前2个单词

时间:2016-06-20 12:58:54

标签: regex

我有以下句子:共10项(26)

我想根据“总数”这个词提取数字26,50。我带着积极的外观来到这里,但现在我被困住了。 (?<=total )(.*)(?=\d)

2 个答案:

答案 0 :(得分:0)

你不需要向后看。使用群组:

https://regex101.com/r/oC0dM3/2

total\s+(?P<COUNT>\d+)\s+item(?:\(s\))?\s+(?P<PRICE>\d+(?:,\d+)?)

答案 1 :(得分:0)

许多正则表达式引擎不支持变量可变长度Look,在这些情况下,如果使用lookbehind,你的Regex效率会非常低。

改为使用模式分组:

^total[^)]+\)\s+(.*)$

此处唯一捕获的组是您想要的部分。

  • ^total[^)]+\)\s+匹配到所需模式之前的最后一个空格

  • (.*)$获得我们想要的部分

Demo