Python 仅重新匹配单词中的字母

马卡龙洛格曼

我是 Python re 的新手,但我需要帮助。我在这里搜索,谷歌,文档,但没有任何效果。所以这就是我想要做的。

我有单词(例如)“字符串”然后我有单词列表:

字符串,字符串,str,ing,in,ins,rs,压力

我想匹配:string、str、ing、in、ins、rs。

我不想匹配:stress,strings(因为有2x s,而在word string中,只有1个)

  • 只匹配单词string 中的字母

对不起,英语不好,如果我解释得不够好。

是的,而且,有些字母是 unicode。

绝地武士

本着问题的精神,这是一个正则表达式答案。

这是要使用的正则表达式

它是 ^(?=[string]{1,6}$)(?!.*(.).*\1).*$

这将检查 1-6 个字符在string. 后半部分确保没有重复。当然,如果您的原始 中有多个相同的字符,这种方法就会失效sstring,并且对于长字符串并不是特别有效。

为通用输入词运行它的代码:

import re
mylist = ["strings", "string", "str", "ing", "in", "ins", "rs", "stress"]
word = "string"
r = re.compile("^(?=[%s]{1,%d}$)(?!.*(.).*\1).*$" % (word, len(word)))
print filter(r.match, mylist)

这打印:

['string', 'str', 'ing', 'in', 'ins', 'rs']

您可以在此处使用代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将一个单词中的字母频率与R(或python)中的26个字母匹配

如何使用Python仅显示带有元音的单词中的字母

在 Python 中计算文件中的单词实例,仅适用于单个字母

在python中返回匹配的单词

单词中字母的python位置频率字典

打印单词从python中的特定字母开始?

重新匹配中的Python变量

Python - 仅将字符串中每个单词的第一个字母大写

Python名称仅首字母的模糊匹配

在Python中使用重新编译匹配单词

在Python中匹配Unicode单词边界

如何在python中匹配多个单词

用Python中的数字替换单词中的多个字母?

程序:在python中查找单词中的大写字母

如何用python中的其他单词替换匹配单词?

Python:删除单词中连续出现N次以上的字母

python中的单词搜索:返回字母索引的搜索

Python中字母中所有可能的单词

将Python列中每个单词的首字母大写

如何在python中找到单词中的字母数?

Python:扫描文件中的(3 个字母)单词

在Python中计算单词中字母之间的距离

python for循环使用return获取单词中的字母

Python 仅提取单词

python regex仅保留以字母开头并以[a-zA-Z0-9]继续的单词

Python-.insert()方法仅替换单词的第一个字母?

使用 Python 正则表达式匹配字母数字单词、提及或电子邮件

如何使用正则表达式(Python)匹配必须为字母,数字和斜线的单词?

如何从python中的字符串中仅获取单词?