查找正则表达式以匹配列表中的元组对。一直使用下面的正则表达式
s = '[(aleakedteaserand, NN), (abehind, IN), (the, DT)]'
re.findall(r'\((.*,.*)\)',s)
但它仍然缺少最后的支撑。
['aleakedteaserand, NN), (abehind, IN), (the, DT']
预期产出:
[(aleakedteaserand,NN),(abehind,IN),(the,DT)]
答案 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']