gpt4 book ai didi

python - 在 Python 中使用通配符匹配字符串

转载 作者:太空狗 更新时间:2023-10-30 00:15:41 27 4
gpt4 key购买 nike

我试图在包含通配符的字符串中查找子字符串的位置。例如:

substring = 'ABCDEF'
large_string = 'QQQQQABC.EFQQQQQ'

start = string.find(substring, large_string)
print(start)

5

提前谢谢你

最佳答案

我们的想法是将您要查找的内容(在本例中为 ABCDEF)转换为以下正则表达式:

([A]|\.)([B]|\.)([C]|\.)([D]|\.)([E]|\.)([F] |\.)

每个字符都放在 [] 中,以防它变成正则表达式特殊字符。唯一复杂的是,如果搜索字符之一是 ^,如 ABCDEF^^ 字符应该被转义,因此需要特殊处理。

然后使用 re.search 搜索该模式的字符串:

导入报告

substring = 'ABCDEF'
large_string = 'QQQQQABC.EF^QQQQQ'

new_substring = re.sub(r'([^^])', r'([\1]|\\.)', substring)
new_substring = re.sub(r'\^', r'(\\^|\\.)', new_substring)
print(new_substring)
regex = re.compile(new_substring)
m = regex.search(large_string)
if (m):
print(m.span())

打印:

([A]|\.)([B]|\.)([C]|\.)([D]|\.)([E]|\.)([F]|\.)
(5, 11)

关于python - 在 Python 中使用通配符匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57936268/

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