python - 无法拆分字符串
问题描述
我有一个愚蠢的问题,列表中有空白项目。其中有 if 语句试图抵消它,但即使使用它们,输出也包含空白部分。
我一直在玩 string.split() ,发现它需要什么是非常具体的,每次我试图让它工作时,它都会失败。怎么了?
a = 'Beautiful, is==; better*than\nugly'
import re
a = re.split(',|\s|=|;|\*|\n| ',a)
for x in a:
if x == '\n':
a.remove(x)
elif x == ' ':
a.remove(x)
elif x == '':
a.remove(x)
print(a)
print("REE")
我只希望结果是:['Beautiful', 'is', 'better', 'than', 'ugly']
但实际结果是:['Beautiful', '', 'is', '', '', '', 'better', 'than', 'ugly']
解决方案
您想要拆分任意数量的分隔符组。你现在这样做的方式,你一次只分裂一个。这给了你你想要的:
import re
a = 'Beautiful, is==; better*than\nugly'
a = re.split(r'[,\s=;*\n]+',a)
print(a)
结果:
['Beautiful', 'is', 'better', 'than', 'ugly']
如果要拆分所有非字母数字字符,可以改用此表达式:
a = re.split(r'[^\w]+',a)
推荐阅读
- json - 使用 Axios 和 NodeJS Express 解析 JSON 数据(匹配 mongoose 的模式)
- python - 如何连接数据帧以便将缺失值设置为 NaN
- leaflet - 将 minZoom 与 map.fitBounds 一起使用而不会出错
- python - Python - 向时间序列数据集添加行
- java - GetterAndSetter 返回空的 ArrayList
- ios - 关于重用 UITouch 和 UIEvent 对象
- rx-java - 如果 RxJava 失败,如何恢复映射列表
- regex - 具有前瞻模式的 grep 命令不选择任何内容
- html - 文本换行时元素占用 100% 的宽度(flexbox)
- xml - 旧版本产品如何提供方案?