我已经阅读了这篇文章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'
都应匹配,但上述帖子中给出的程序并未给出最低匹配。
请帮忙。
答案 0 :(得分:0)
re.findall('(?=(\D\d{2,5}?.+?CA.?[ -._]*(?:\d{5})?))','6785 56767at435 hjfioej st. CA. 94827ifojwnf 93842')
所以这将解决问题,然后输出最小长度之一。