Python正则表达式匹配元组对

时间:2017-12-30 02:01:48

标签: regex python-2.7

查找正则表达式以匹配列表中的元组对。一直使用下面的正则表达式

s = '[(aleakedteaserand, NN), (abehind, IN), (the, DT)]'    
re.findall(r'\((.*,.*)\)',s)

但它仍然缺少最后的支撑。

['aleakedteaserand, NN), (abehind, IN), (the, DT']

预期产出:

  

[(aleakedteaserand,NN),(abehind,IN),(the,DT)]

2 个答案:

答案 0 :(得分:8)

你没有让RegEx不合适。解决方案是re.findall(r'\((.*?,.*?)\)',s)

答案 1 :(得分:1)

替代品。第一个使用补充匹配,通常用作非贪婪搜索的替代方法,但不可用。

>>> re.findall(r'\(([^)]*)\)',s)
['aleakedteaserand, NN', 'abehind, IN', 'the, DT']

>>> re.split('\), \(', s.strip('[()]'))
['aleakedteaserand, NN', 'abehind, IN', 'the, DT']

没有正则表达式

>>> s.strip('[()]').split('), (')
['aleakedteaserand, NN', 'abehind, IN', 'the, DT']