首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:匹配字符串中的全部单词,并按找到的顺序追加到列表中

Python:匹配字符串中的全部单词,并按找到的顺序追加到列表中
EN

Stack Overflow用户
提问于 2013-07-23 13:27:38
回答 1查看 1.5K关注 0票数 0

在这个问题上真的需要帮助-

我有一份清单:

代码语言:javascript
复制
mylist = "Cell Contents (Column Percentage, Counts, Statistical Test Results), Statistics (Overlap)"

我想在我的名单中找到以下几个词:

代码语言:javascript
复制
'Statistical Test Results'
'Counts'
'Column Percentage'

一旦发现,我想把这些词按它们在我的列表中出现的顺序附加到一个新的列表中。因此,新的清单应改为:

代码语言:javascript
复制
newlist = ['Column Percentage','Counts','Statistical Test Results']

我知道如何使用for循环找到单个单词并将其追加到新列表中,但我不太确定如何找到多个单词并按照原始列表中的顺序追加它们。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-23 13:34:31

我在第一对括号之间匹配内容:

代码语言:javascript
复制
re.finditer(r'\((.*?)\)', mylist).next().groups()[0].split(', ')
['Column Percentage', 'Counts', 'Statistical Test Results']

re.finditer正则表达式搜索

  • 第一个参数是模式:它告诉在括号之间搜索第一项。
  • 注意使用?内部使其不贪婪,以避免匹配太大.要理解,删除并测试
  • 我们想要捕捉括号内的表达式,这就是为什么我们有.模式内的括号。请注意字符串中匹配的转义括号\(\)与捕获括号()之间的区别。

finditer返回一个迭代器,只有在我们使用next运行它之后,它才会生效。现在我们想要获取字符串的捕获部分:这是groups方法([0]获得第一个,也是唯一一个,但您可以用正则表达式捕获几个部分)。

然后我们把结果分成昏迷,就结束了!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17811564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档