python 如何匹配列表中某个单词_从列表中的一个字符串中搜索任意单词或单词组合(python)...

这篇博客介绍如何在Python中使用正则表达式和itertools库来搜索列表中的单词或单词组合。通过创建所有可能的有序排列并检查与目标列表的交集,找出存在的匹配项。
摘要由CSDN通过智能技术生成

目的

你说的是组合,但是组合在语义上是无序的,你的意思是,你想要找到所有有序排列的交集,这些排列由空格连接到一个目标列表。在

首先,我们需要导入要使用的库。在import re

import itertools

拆分字符串

不要分割字符,你是在做一个语义搜索,除了奇怪的字符。

由re模块支持的正则表达式非常适合于此。生的

Python字符串,r'',我们使用正则表达式来表示单词的边缘,\b,在任何字母数字字符(和_)周围,\w,数字大于或等于1,+。在

re.findall返回每个匹配项的列表。在

^{pr2}$

这里,单词是我们的单词表:>>> print words

['alpha', 'beta', 'charlie', 'delta', 'epsilon', 'foxtrot']

创造排列

继续,我们更喜欢使用生成器操作数据,以避免在需要数据之前不必要地具体化数据,并在内存中保存大型数据集。itertools库有一些很好的函数,它们非常适合我们提供上述单词的所有排列,并将它们链接到单个iterable中:_gen = (itertools.permutations(words, i + 1) for i in xrange(len(words)))

all_permutations_gen = itertools.chain(*_gen)

用list(all_permutations_gen)列出所有的排列可以得到:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值