gpt4 book ai didi

python - 如果子字符串替换了随机字符,如何找到子字符串?

转载 作者:行者123 更新时间:2023-12-04 22:39:06 25 4
gpt4 key购买 nike

假设我们在 Python 中有一个字符串:

original_string = "TwasTheNightBeforeChristmasWhenAllThroughTheHouse"

我们感兴趣的是找到子串 substring ="ChristmasWhen" 的起始坐标。 .这在 Python 中非常简单,即
>>> substring ="ChristmasWhen"
>>> original_string.find(substring)
18

这检查出来
>>> "TwasTheNightBeforeChristmasWhenAllThroughTheHouse"[18]
'C'

如果我们试图寻找一个不存在的字符串, find()将返回-1。

这是我的问题:

我有一个子字符串,它保证来自原始字符串。但是,此子字符串中的字符已被随机替换为另一个字符。

如果子字符串具有随机字符,我如何通过算法找到子字符串的起始坐标(或至少检查是否可能) '-'替换某些字母?

这是一个具体的例子:
original_string = "TwasTheNightBeforeChristmasWhenAllThroughTheHouse"
substring = '-hri-t-asW-en'

当然,如果我尝试 original_string.find('-hri-t-asW-en') ,但可以找到 hri从 19 开始,因此前缀为 - ,子串 original_string.find('-hri-t-asW-en')必须是 18。

最佳答案

这通常是正则表达式的用途:查找模式。然后你可以尝试:

import re                       # use regexp
original_string = "TwasTheNightBeforeChristmasWhenAllThroughTheHouse"
r = re.compile(".hri.t.asW.en") # constructs the search machinery
res = r.search(original_string) # search
print (res.group(0)) # get results

结果将是:
ChristmasWhen

现在,如果您的输入(搜索字符串)必须使用“-”作为通配符,您可以将其转换为正确的正则表达式:
import re 
original_string = "TwasTheNightBeforeChristmasWhenAllThroughTheHouse"
s = ".hri.t.asW.en" # supposedly inputed by user
s = s.replace('-','.') # translate to regexp syntax
r = re.compile(s)
res = r.search(original_string)
print (res.group(0))

关于python - 如果子字符串替换了随机字符,如何找到子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59818623/

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