In [30]: s = '123 45$78 98@abc %'
In [31]: print re.findall(r'\b[\w]+ ?', s)
['123 ', '45', '78 ', '98', 'abc ']
In [32]: print re.findall(r'(\b[\w]+ ?)', s)
['123 ', '45', '78 ', '98', 'abc ']
In [33]: print re.findall(r'(\b[\w]+ ?)+', s)
['45', '98', 'abc ']
预期结果如下:
['123 45', '78 98', 'abc ']
问题>此问题的重点与如何分割字符串无关。相反,我想知道python是否允许我们进行贪婪匹配。
谢谢
Python会进行贪婪匹配。问题在于您的正则表达式似乎是错误的。
使用[\w]+ ?
,您可以匹配一些字符,并可以选择后面跟一个空格。您似乎想要的只是将某些字符或空格混合在一起。尝试这个:
In [10]: re.findall(r'\b[\w ]+', s)
Out[10]: ['123 45', '78 98', 'abc ']
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句