python - 如何从列表中删除所有符合特定格式的字符串?

问题: 假设我有一个列表 a = ['abd', 'the dog', '4:45 AM', '1234 total', 'etc...','6:31 PM', '2:36 ']

如何删除 4:45 AM6:31 PM 和“2:36”等元素?即,如何删除 number:number|number 形式的元素以及末尾带有 AM/PM 的元素?

说实话,我没有尝试太多,因为我不确定从哪里开始,除了类似的东西:

[x for x in a if x != something]

最佳答案

您可以使用正则表达式 \d+(?::\d+)?$ 并使用它进行过滤。

查看演示。

https://regex101.com/r/HoGZYh/1

import re
a = ['abd', ' the dog', '4:45', '1234 total', '123', '6:31']
print [i for i in a if not re.match(r"\d+(?::\d+)?$", i)]

输出:['abd', 'the dog', '1234 total']

https://stackoverflow.com/questions/53659253/

相关文章:

regex - Powershell Parsing Help - 如何将文件夹名称列表输出到文本文

go - 格式错误。新

c# - 如何在 c# 中将 Decimal 格式化为程序控制的小数位数?

delphi - 如何格式化 DBGrid 列以显示两个小数位?

c# - .NET 有免费的 SQL 格式化库吗?

.net - 格式化 json 文档

java - 如何用空格左填充整数?

json - 如何在 Delphi 中漂亮地打印 JSON?

vba - 更改单元格中某些字符的颜色

javascript - moment.js - 更改已格式化的过去日期的格式