![](/img/trans.png)
[英]How To Extract Three Letters Followed By Five Digits Using Regex in Python
[英]Regex in python for time format followed by comma and three digits
我有一个包含数千种时间格式的文件。 其中一些采用标准格式,而另一些则后跟逗号和三位数,如下所示:
Standard format: 00:00:44
Followed by comma and three digits: 00:00:46,235
我已经使用以下正则表达式删除了标准格式:
text = re.sub(r'^((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$)', '', text)
没关系。 但是对于后跟逗号和三位数字的时间格式,到目前为止我尝试过的任何内容都没有帮助我删除它们。 请问,我怎样才能删除这个奇怪的时间格式模式?
您的正则表达式与标准时间格式相匹配。
r'^((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$)'
只需在末尾添加逗号部分,并将其设为可选。
r'^((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:,\d{3})?$)'
(?:,\\d{3})?
:
(?: ) Non-capturing group
,\d{3} Comma, then three digits
? Match zero or one times
快速而肮脏的方法是使用split()
:
text = text.split(",")[0]
text = re.sub(r'^((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$)', '', text)
您还可以更新您的正则表达式以在最后添加一个可选部分。
text = re.sub(r'^((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d),?\d{0,3}$', '', text)
使用re.sub
:
inp = "Followed by comma and three digits: 00:00:46,235"
output = re.sub(r'\b(\d{2}:\d{2}:\d{2}),\d{3}', r'\1', inp)
print(output) # Followed by comma and three digits: 00:00:46
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.