python - 有多个空格时如何 re.split(" ", string)?
问题描述
d = ["11:00 PM", "13!00 PM", "11 00 PM"]
for i in d:
print(re.split(" ", i)
对于其他人来说没关系,打印["11:00", "PM"]
和["13!00", "PM"]
,但对于11 00 PM
它打印["11", "00", "PM"]
。如何更改正则表达式,使其也返回["11 00", "PM"]
那里?
解决方案
对于这些示例,您可以使用 normal text.split()
(或者更确切地说text.rsplit()
)而不是regex
d = ["11:00 PM", "13!00 PM", "11 00 PM"]
for i in d:
print(i.rsplit(" ", 1))
结果:
['11:00', 'PM']
['13!00', 'PM']
['11 00', 'PM']
编辑:
如果要删除“白色字符” - 空格,制表符,输入 - 在两边,那么你可以使用 normal text.strip()
。类似的rstrip()
,lstrip()
适用于右侧或左侧。或者strip(' ')
,如果您只想删除空格并保留制表符并输入,请使用。
i = i.strip().rsplit(" ", 1)
d = [" 11:00 PM", "\n 13!00 PM", "11 00 PM"]
for i in d:
print(i.strip().rsplit(" ", 1))
编辑:如果你想保留结果,那么你可以追加到列表
d = [" 11:00 PM", "\n 13!00 PM", "11 00 PM"]
results = []
for i in d:
results.append(i.strip().rsplit(" ", 1))
print(results)
或者您可以使用@Alexander 在评论中所说的列表理解
d = [" 11:00 PM", "\n 13!00 PM", "11 00 PM"]
results = [x.strip().rsplit(maxsplit=1) for x in d]
print(results)
推荐阅读
- linux - 如何用双引号在前两行末尾添加属性
- ag-grid - 没有企业版可以使用ag-grid的老树数据吗?
- python - 具有整数序列的 Keras 示例单词级模型给出了 `expected ndim=3, found ndim=4`
- php - 为什么这种重定向在 Laravel 中不起作用?
- php - 使用 PHP/Jquery 显示从 Mysql db 到 Html5 引导程序的值
- amazon-web-services - 如何优雅地排空 EKS 中的节点?
- r - 如何使用 Google Analytics (rga) 编写动态报告
- java - Java - 如何验证不允许的字符?
- go - 从范围生成的值具有相同的指针值
- c# - Entity Framework Core .Select() - SQL 的所有列都不是指定的子集