如何找到正则表达式模式之间的所有字符串? 例如,
>>> s="123 asd 12 456 sfd g 789"
>>> reg=re.compile("\d{3}")
>>> reg.findall(s)
['123', '456', '789']
我想找到:
[' asd 12 ', ' sfd g ']
请您参考如下方法:
使用 .split() method而不是 .findall():
>>> reg.split(s)
['', ' asd 12 ', ' sfd g ', '']
它包括匹配之间的所有 结果,包括开始和结束处的空字符串。你可以过滤掉那些:
>>> filter(None, reg.split(s))
[' asd 12 ', ' sfd g ']
尽管在 Python 3 上你需要使用 list(filter(None, reg.split(s))),或者遍历 filter().
