2017-02-08 136 views
2

我想使用正则表达式开括号“(”字符后的数字AA可变长度相匹配。正则表达式匹配号码后(

我已经试过

\(\d+ 

但是,正则表达式包括支架。在比赛中如何排除它

我使用的崇高文字正则表达式引擎做匹配

+0

是JavaScript吗? –

+0

崇高的文本生成系统正则表达式 – ScottF

回答

4

你可以使用一个positive lookbehind

(?<=\()\d+ 

这里有一个限制:你只能有在回顾后一个已知宽度的格局。您可以使用(?<=\(|\s{5})\d+,但不能使用(?<=\d:\s*)\d+

enter image description here

您可以使用\K“匹配复位”操作符来解决长度限制在回顾后,因为\K只是“截断”的地方,它是用来匹配,通过模式匹配的所有文字它的左侧被省略:

\(\K\d+ 

[enter image description here]

注意\K实际上不是一个回顾后等同,因为文字是前景是消耗而向后看不消耗文本。

+0

使用正则表达式多年,这是我第一次看到'\ K'操作符。谢谢! –

+0

@HubertGrzeskowiak:这是来自PCRE,Boost和Onigmo正则表达式库中的Perl的有用操作符。 –

1

您可以使用捕获组:?

/\((\d+)/ 

非转义括号是一个正则表达式匹配组,您可以从每个匹配中提取。如果你有一个搜索替换系统,$1通常用于访问组。