按正则表达式拆分 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 不采用正则表达式。
我觉得问这样的问题很愚蠢,但我做不到。我制作了一个简单的正则表达式来拆分具有以下格式的字符串:
(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 不采用正则表达式。