regex - 使用 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', '']
很明显,分裂太多了。我可以通过使用不同的正则表达式方法来解决这个问题,但我不知道为什么''
会出现在结果的两端。
解决方案
因为 split 查找正则表达式以匹配分隔符- 并hey.
匹配正则表达式,但也与2345
字符串的末尾分开。
所以你得到的是'2345 hey.'
被分成'2345'
and ''
,' hey.'
在它们之间。
同样,如果您的分隔符是a
并且您有字符串aba
,您会得到结果['', 'b', '']
,因为a
将字符串的开头和结尾与b
中间的分隔开。
推荐阅读
- sql - 查询创建视图
- python - 切片字符串直到下一个字符
- python - 从两个列表中找到最佳组合
- java - 类文件有错误的版本 57.0,应该是 55.0
- reactjs - React 是否会发送其整个公共目录内容?
- php - 我可以使用 swift 将 html 类型设置为邮件主题吗?
- kibana - 将时间范围从 Kibana 变为无痛脚本领域
- python - 如何将 Django-Filter 与 Django-Taggit 一起使用(按标签过滤帖子)?
- python - Python BeautifulSoup 通过实时价格循环
- c# - View Cube - 用户指定的标签