在未指定的任何字符周围拆分字符串

EEP*_*EEP 4 python regex string

我希望能够将一个字符串拆分成一个不是数字或点的任何东西的列表.目前split方法只提供了一种做出积极匹配的方法,是一种正则表达式在这种情况下采取的最佳途径吗?

例如,给定字符串"10.23, 10.13.21; 10.1 10.5 and 10.23.32" This应该返回列表['10.23', '10.13.21', '10.1', '10.5', '10.23.32']

因此我相信在这种情况下使用的最佳正则表达式将是... [\d\.]+

这是处理这种情况的最佳方法吗?

Lev*_*sky 9

如果您正在考虑re.findall:您可以使用re.split正则表达式的反转版本:

In [1]: import re

In [2]: s = "10.23, 10.13.21; 10.1 10.5 and 10.23.32"

In [3]: re.split(r'[^\d\.]+', s)
Out[3]: ['10.23', '10.13.21', '10.1', '10.5', '10.23.32']
Run Code Online (Sandbox Code Playgroud)