gpt4 book ai didi

python - 查找通过从给定字符串中删除字母而创建的单词

转载 作者:行者123 更新时间:2023-12-01 00:53:13 25 4
gpt4 key购买 nike

我正在尝试使用正则表达式和我的文本文件编写代码。我的文件逐行包含这些单词:

each
expressions
flags
in
from
given
line
of
once
lines
no

我的目的是;显示通过从给定子字符串中删除字母而创建的单词。

例如;如果我的子字符串是“flamingoes”,我的输出应该是;

flags
in
line
lines
no

因为它们是通过删除字母从我的子字符串创建的,并且它们也在我的文本文件中。

我做了很多关于正则表达式的工作,但我对这个挑战很感兴趣。是否有任何正则表达式解决方案?

最佳答案

您应该为您要查找的每个单词创建一个正则表达式。每个字母之间的表达式 .*? 是一种非贪婪模式,这将避免回溯(至少是部分回溯),并使搜索速度更快。

例如,单词“given”的正则表达式为 g.*?i.*?v.*?e.*?n

import re

def hidden_words(needles, haystack):
for needle in needles:
regex = re.compile(('.*?').join(list(needle)))
if regex.search(haystack):
yield needle

needles = ['each', 'expressions', 'flags', 'in', 'from',
'given', 'line', 'of', 'once', 'lines', 'no']

print(*hidden_words(needles, 'flamingoes'), sep='\n')

关于python - 查找通过从给定字符串中删除字母而创建的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56414347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com