我对python正则表达式(一般的正则表达式)很新,我试图解析一个包含时间戳的大字符串。例如,我有:
s_string="process output lean six sigma logistics 12:10:24Cel telecom giant firm"
pattern = r'''^\d{2}:\d{2}:\d{2}$'''
re.compile(pattern).findall(str(s_string))[0]
我发现这很奇怪,因为当我尝试一个微不足道的例子时:
import re
s_string="43:65:24"
pattern = r'''^\d{2}:\d{2}:\d{2}\?$'''
re.compile(pattern).findall(str(s_string))[0]
..它输出正确的结果。
所以,我的字符串基本上有时间戳,看起来像:
s_string="process output lean six sigma logistics 12:10:24Cel telecom giant firm"
,或者
s_string="process output lean six sigma logistics 12:10:24MKst telecom giant firm"
我想知道如何在没有attached characters
到秒字段的情况下提取时间戳。
p.s:我看到一些使用datetime
的例子,但我想在纯正则表达式中这样做以提高我的技能。
答案 0 :(得分:0)
^
和$
锚定字符串的开头和结尾。当字符串为43:65:25
时,开头和结尾都会正确匹配。但是如果你在“时间”之前或之后有任何文字,那么在“时间”匹配之前和之后都找不到开始和结束。因此,只需r'''\d{2}:\d{2}:\d{2}'''
即可找到您要找的内容。