假设我们在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
您可以使用常规表达式来查找匹配项和保留项
也许使用正则表达式?例如,您可以使用
.
(点字符)匹配任何字符(默认情况下,新行除外)。因此,如果修改子字符串以使用点而不是破折号来表示字符串中已擦除的字母,则可以使用re.search
来定位这些模式:这就是正则表达式的典型用途:查找模式。然后,您可以尝试:
结果将是:
现在,如果您的输入(搜索字符串)必须使用“-”作为通配符,则可以将其转换为正确的正则表达式:
相关问题 更多 >
编程相关推荐