Li *_*oyi 8 python regex string algorithm
检查StringA = StringB与在某个任意点插入另一个StringC的最佳方法是什么?
例如,给定abcdef和abcXYZdef,我想找到abcXYZdef是abcdef与XYZ在第4位插入.
另一方面,给定abcdef和abRSTcdXYZef,我想找到第一个字符串不能只用一次插入就变成第二个字符串.
我知道我可以从两端逐字逐句地查看StringA,并检查它是否涵盖整个StringB,但这样写起来相当繁琐.在Python(我正在工作)中执行此操作也会相当慢,我宁愿不为此编写特殊的C扩展.
我能用Regex或其他标准字符串操作函数做些聪明的事情吗?
编辑:为了澄清,StringC是完全未知的; 甚至可能没有有效的StringC,我想知道是否是这种情况.
标准库中一个非常被低估的宝石是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)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
200 次 |
| 最近记录: |