gpt4 book ai didi

python - 字母之间具有恒定字母距离的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-03 21:36:30 26 4
gpt4 key购买 nike

我正在尝试将单词与字母之间具有一定字母距离的字母进行匹配,例如,我想查找带有 A.*BB 的所有单词。 *CC.*D 等。我目前在 Python 3 中使用“re”包。

是否有某种方法可以在不指定距离为 1 的所有字母元组的情况下执行此操作? IE。不是 (A.*B|B.*C|C.*D|....|Y.*Z)

我正在寻找一些强大的解决方案,该解决方案可以在需要多个组(如果存在)的更复杂的情况下工作。

最佳答案

“A”的序数是 97,“B”是 98,等等。您可以定义一个可以为您完成此操作的列表理解。例如

distance = 1
regex = '(' + '|'.join("{}.*{}".format(chr(x), chr(x+distance)) for x in range(ord('A'), ord('Z')+1-distance)) + ')'
print(regex)
>>> (A.*B|B.*C|C.*D|D.*E|E.*F|F.*G|G.*H|H.*I|I.*J|J.*K|K.*L|L.*M|M.*N|N.*O|O.*P|P.*Q|Q.*R|R.*S|S.*T|T.*U|U.*V|V.*W|W.*X|X.*Y|Y.*Z)
distance = 2
regex = '(' + '|'.join("{}.*{}".format(chr(x), chr(x+distance)) for x in range(ord('A'), ord('Z')+1-distance)) + ')'
print(regex)
>>> (A.*C|B.*D|C.*E|D.*F|E.*G|F.*H|G.*I|H.*J|I.*K|J.*L|K.*M|L.*N|M.*O|N.*P|O.*Q|P.*R|Q.*S|R.*T|S.*U|T.*V|U.*W|V.*X|W.*Y|X.*Z)

关于python - 字母之间具有恒定字母距离的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53216846/

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