按正则表达式拆分 Python

Split on regex Python

我觉得问这样的问题很愚蠢,但我做不到。我制作了一个简单的正则表达式来拆分具有以下格式的字符串:

(15,20) (17,30 )   ( 40 ,  25)

我自愿让随机空白,因为它在格式上是合法的。我的正则表达式非常基本:[^0-9-]+works fine. I'm familiar enough with regexes in Java and Scala so I first checked the doc of Python 以查看差异,看起来这个正则表达式是正确的,尽管它可能更短。

然而,它没有分割任何东西。

代码:

"(15,20) (17,30 )   ( 40 ,  25)".split("[^0-9-]+")

输出:

['(15,20) (17,30 )   ( 40 ,  25)']

知道为什么这么简单的正则表达式不起作用吗?

没有使用正则表达式方法。使用 re module; the re.split() function 做你想做的就好了:

>>> import re
>>> re.split(r'[^0-9]+', '(15,20) (17,30 )   ( 40 ,  25)')
['', '15', '20', '17', '30', '40', '25', '']

str.split() method 不采用正则表达式。