Skip to main content
 首页 » 编程设计

python之正则表达式匹配之间的字符串列表

2025年05月04日20qlqwjy

如何找到正则表达式模式之间的所有字符串? 例如,

>>> 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().