RegEx模式返回除括号中的所有单词之外的所有单词

时间:2014-04-11 10:01:08

标签: regex

我有一份表格的文字:

  

können{konnte,gekonnt}动词

我希望得到一个不在括号中的所有单词的匹配。这意味着:

  

können=第一场比赛,动词=第二场比赛

不幸的是,我仍然没有得到正则表达式的敲门声。除非你想读一本书,否则有很多测试可能性但对创作没什么帮助。

我将在Java或Python中使用它们。

2 个答案:

答案 0 :(得分:1)

在Python中你可以这样做:

import re
regex = re.compile(r'(?:\{.*?\})?([^{}]+)', re.UNICODE)
print 'Matches: %r' % regex.findall(u'können {konnte, gekonnt} Verb')

结果:

Matches: [u'können ', u' Verb']

虽然我建议只更换{}之间的所有内容,如下所示:

import re
regex = re.compile(r'\{.*?\}', re.UNICODE)
print 'Output string: %r' % regex.sub('', u'können {konnte, gekonnt} Verb')

结果:

Output string: u'können  Verb'

答案 1 :(得分:1)

使用此模式的正则表达式SPLIT将完成这项工作:

(\s+|\s*{[^}]*\}\s*)

并忽略任何空值。