gpt4 book ai didi

python - 在字符串中查找字符串的子序列

转载 作者:太空狗 更新时间:2023-10-29 22:04:28 25 4
gpt4 key购买 nike

我想创建一个函数来检查字符串中是否出现其他字符串。
但是,正在检查的子字符串可能会在主字符串中被其他字母打断。

例如:

a = 'abcde'
b = 'ace'
c = 'acb'

有问题的函数应该返回 ba 中,而不是 c

我试过 set(a)。 intersection(set(b)) 已经存在了,我的问题是它返回 c 作为在 a 中。

最佳答案

您可以将预期序列转换为正则表达式:

import re

def sequence_in(s1, s2):
"""Does `s1` appear in sequence in `s2`?"""
pat = ".*".join(s1)
if re.search(pat, s2):
return True
return False

# or, more compactly:
def sequence_in(s1, s2):
"""Does `s1` appear in sequence in `s2`?"""
return bool(re.search(".*".join(s1), s2))

a = 'abcde'
b = 'ace'
c = 'acb'

assert sequence_in(b, a)
assert not sequence_in(c, a)

“ace”变成了正则表达式“a.*c.*e”,它按顺序找到这三个字符,中间可能有字符。

关于python - 在字符串中查找字符串的子序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3673434/

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