Python如何使用正则匹配并移除后接逗号加三位数字的时间格式
你可以在原有正则的基础上新增毫秒段的匹配规则,即可匹配目标特殊时间格式:
正则规则说明
1. 仅匹配移除带逗号+三位数字的时间格式
正则写为:r'^((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d,\d{3}$)'
其中,\d{3}严格匹配逗号加三位数字的后缀,保证只命中带毫秒的时间行。
2. 同时移除标准时间和带毫秒的时间格式(不需要两次调用sub)
正则写为:r'^((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:,\d{3})?$)'
新增的(?:,\d{3})?是非捕获可选组,代表毫秒后缀可有可无,能同时命中两种格式。
使用示例
如果你的内容是多行文本,需要额外增加re.MULTILINE参数保证逐行匹配:
import re # 同时移除两种时间格式 text = re.sub(r'^((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:,\d{3})?$)', '', text, flags=re.MULTILINE)
如果时间不是单独占一行、而是嵌在其他文本中,把正则首尾的^和$删除即可。
内容的提问来源于stack exchange,提问作者Cygnus X-1
相关产品推荐
相关产品推荐

