具有可互换字符的字符串匹配

2024-09-30 14:30:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在两个字符串之间做一个简单的字符串匹配,一个小字符串到一个大字符串。唯一的问题是我想让小字符串中的两个字符相等。特别是,如果在较小的字符串中有一个字符'I'或一个字符'L',那么我希望它可以互换考虑

例如,假设我的小字符串是

s = 'AKIIMP'

然后更大的字符串是:

b = 'MPKGEXAKILMP'

我想写一个函数,它将接受这两个字符串,并检查小字符串是否在大字符串中。在这个特定的例子中,尽管较小的字符串s不是b中的子字符串,因为没有精确的匹配,但是在我的例子中,它应该与它匹配,因为就像我提到的字符'I''L'可以互换使用,因此结果应该找到匹配

你知道我该怎么做吗


Tags: 函数字符串字符例子mpkgexakilmpakiimp
2条回答
s.replace('I', 'L') in b.replace('I', 'L') 

将在您的示例中计算为True

您可以使用regular expressions执行此操作:

import re

s = 'AKIIMP'
b = 'MPKGEXAKILMP'

p = re.sub('[IL]', '[IL]', s)
if re.search(p, b):
    print(f'{s!r} is in {b!r}')
else:
    print('Not found')

这并不像@Deepstop's answer那样优雅,但它提供了更大的灵活性,使您可以将哪些字符等同起来

相关问题 更多 >