gpt4 book ai didi

python - 在字符串中查找插入

转载 作者:太空狗 更新时间:2023-10-29 21:04:06 25 4
gpt4 key购买 nike

检查 StringA = StringB 是否在任意点插入另一个 StringC 的最佳方法是什么?

例如,给定 abcdefabcXYZdef,我想找到 abcXYZdefabcdefXYZ 插入位置 4。

另一方面,给定 abcdefabRSTcdXYZef,我想发现第一个字符串 不能 变成第二个一次插入。

我知道我可以从两端逐个字符地检查 StringA,并检查它是否覆盖了整个 StringB,但是这样写起来会相当乏味。在 Python(我正在使用它)中执行此操作也相当缓慢,我宁愿不为此编写特殊的 C 扩展。

我可以使用 Regex 或其他标准字符串操作函数为我做一些聪明的事情吗?

编辑:澄清一下,StringC 是完全未知的;甚至可能没有有效的 StringC,我想知道是否是这种情况。

最佳答案

标准库中一个非常被低估的 gem 是 difflib...

>>> import difflib
>>> s = difflib.SequenceMatcher(None, "GHSKWITNIFSI", "GHSKWAGDITNIFSI")
>>> s.get_matching_blocks()[:-1]
[(0, 0, 5), (5, 8, 7)]
>>> s = difflib.SequenceMatcher(None, "GHSKWITNIFSI", "GHSKWITNIFSI")
>>> s.get_matching_blocks()[:-1]
[(0, 0, 12)]

关于python - 在字符串中查找插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6918414/

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