2017-02-08 132 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通常用於訪問組。