Python re查找两个字符串的最长匹配后缀

Python re查找两个字符串的最长匹配后缀,python,regex,string-matching,longest-substring,Python,Regex,String Matching,Longest Substring,我有两个字符串,比如: a = '54515923333558964' b = '48596478923333558964' 现在最长的后缀匹配是 c = '923333558964' 使用re的解决方案是什么 以下是我为前缀匹配找到的解决方案: import re pattern = re.compile("(?P<mt>\S*)\S*\s+(?P=mt)") a = '923333221486456' b = '923333221486234567' c = pattern.

我有两个字符串,比如:

a = '54515923333558964'
b = '48596478923333558964'
现在最长的后缀匹配是

c = '923333558964'
使用re的解决方案是什么

以下是我为前缀匹配找到的解决方案:

import re
pattern = re.compile("(?P<mt>\S*)\S*\s+(?P=mt)")
a = '923333221486456'
b = '923333221486234567'
c = pattern.match(a + ' ' + b).group('mt')
请尝试以下方法:


您可以使用正则表达式模式的这种变体:

\S*?(?P<mt>\S*)\s+\S*(?P=mt)$

在我的系统上处理这个过程需要一秒钟。

为什么要使用re?另外:@MartijnPieters没有什么特别的解决方案,除了循环fine@eumiro.. 你能解释一下你使用的这个方法吗???@RohitJain请看链接文档
\S*?(?P<mt>\S*)\s+\S*(?P=mt)$
a = 1000 * 'a'
b = 1000 * 'a' + 'b'