正则表达式从括号内获取文本,包括分隔的括号

时间:2014-11-26 15:20:20

标签: regex powershell

我正在使用powershell,如果这很重要。

我们说我有

$s = "One two (three) four \(five\) six (\(seven\)) eight"

我想要一个将返回的正则表达式

 three
 (seven)

我需要所有比赛,我知道PowerShell如何在$ match中存储比赛,类似于perl的$ 1 $ 2 $ 3(但这很容易)。

2 个答案:

答案 0 :(得分:1)

使用以下正则表达式并从组索引1中获取所需的字符串。

(?<!\\)\(((?:\\[()]|[^()])*)\)

负面后瞻(?<!\\),声称该匹配不会以\符号开头。

DEMO

答案 1 :(得分:0)

(?<!\\)\(([^)]+\))

试试这个。看看演示。

http://regex101.com/r/kT6vO6/3