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