'(match_start1)...(match_start2)...(match_end)'找到最短的字符串匹配

时间:2014-09-24 00:29:15

标签: python regex

我已经阅读了这篇文章How do I find the shortest overlapping match using regular expressions?,但那里的答案并不适用于我的案例。

我一直在寻找模式'\D\d{2,5}?.+?CA.??[ \-\.\_]*(?:\d{5})?', the string is '6785 56767at435 hjfioej st. CA. 94827ifojwnf 93842'

't435 hjfioej st. CA. 94827'' 56767at435 hjfioej st. CA. 94827'都应匹配,但上述帖子中给出的程序并未给出最低匹配。

请帮忙。

1 个答案:

答案 0 :(得分:0)

re.findall('(?=(\D\d{2,5}?.+?CA.?[ -._]*(?:\d{5})?))','6785 56767at435 hjfioej st. CA. 94827ifojwnf 93842')

所以这将解决问题,然后输出最小长度之一。