首页 > 解决方案 > 使用 re.split() 时去掉开头和结尾的字符

问题描述

我试图理解re.split(),我想忽略逗号分隔符、句点和破折号。

我不明白的是为什么我在结果末尾得到一个空字符串。

而且我似乎无法弄清楚如何忽略逗号。

这是我的测试代码:

sntc = 'this is a sentence total $5678 fees: expenses $123,345 why not -2345 hey.'

test = re.split('\D*', sntc) 
print(test)

我得到以下输出:

['', '5678', '123', '345', '2345', '']

很明显,分裂太多了。我可以通过使用不同的正则表达式方法来解决这个问题,但我不知道为什么''会出现在结果的两端。

标签: regexpython-3.xsplit

解决方案


因为 split 查找正则表达式以匹配分隔符- 并hey.匹配正则表达式,但也与2345字符串的末尾分开。

所以你得到的是'2345 hey.'被分成'2345'and ''' hey.'在它们之间。

同样,如果您的分隔符是a并且您有字符串aba,您会得到结果['', 'b', ''],因为a将字符串的开头和结尾与b中间的分隔开。


推荐阅读