如何除括号的第二部分外的所有文本部分?

时间:2014-08-21 06:09:54

标签: regex notepad++

我有这种格式的文字:

  

((IP-MAT(CONJ vnnd)

     

(NP-NOM(D das)(N麦芽汁))

     

(BED战争)

     

(PP(P bey)

     

(NP-DAT(NPR Gott)))

     

(。,))

除了内括号的第二部分外,我想删除文本的所有部分。在这个例子中,我的目标是这样的:

vnnd das wort war bey Gott ,

我使用了这段代码:

serach for: (?:(?!\n\n).(?<!\n\n))*?\(([$\w,.+-]+)\s+[$\w,.*?-]+\)+|(?:(?!\n\n).(?<!\n\n))+$
replace with: $1

但它只是保存了第一部分。我需要第二部分。我如何更改代码以达到我的目标?

2 个答案:

答案 0 :(得分:0)

为什么不匹配你想要的角色?

\w+(?=\))

Regular expression visualization

Debuggex Demo

<强>结果:

vnnd
das
wort
war
bey
Gott

答案 1 :(得分:0)

在Notepad ++中

查找内容:.*?([^ ]+?)\)+ 替换:$1

Online demo

以上正则表达式在空格后查找任何内容,然后在)之后查找一次或多次。