真的需要一些帮助 -
我有一个清单:
mylist = "Cell Contents (Column Percentage, Counts, Statistical Test Results), Statistics (Overlap)"
我想在mylist中找到以下单词:
'Statistical Test Results'
'Counts'
'Column Percentage'
一旦找到,我想按照它们出现在mylist中的顺序将这些单词附加到新列表中。所以新列表应该是:
newlist = ['Column Percentage','Counts','Statistical Test Results']
我知道如何找到一个单词并使用for循环将其附加到新列表但是我不太确定如何找到多个单词并按照它们在原始列表中找到的顺序附加它们。
谢谢!
答案 0 :(得分:2)
我匹配第一对括号之间的内容:
re.finditer(r'\((.*?)\)', mylist).next().groups()[0].split(', ')
['Column Percentage', 'Counts', 'Statistical Test Results']
re.finditer
是a regular expression search:
?
内部使其非贪婪,以避免匹配太大...要理解,删除它并测试\(
和\)
之间的差异,以及未转义的捕获的(
和)
。 finditer
返回一个迭代器,它只有在我们使用next
运行后才有效。现在我们想要获取字符串的捕获部分:这是groups
方法([0]
以获得第一个和唯一一个,但您可以使用正则表达式捕获多个部分。)
然后我们只是用昏迷来分割结果,我们就完成了!