python正则表达式用于时间戳,后跟字符

时间:2014-08-26 13:34:39

标签: python regex

我对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的例子,但我想在纯正则表达式中这样做以提高我的技能。

1 个答案:

答案 0 :(得分:0)

^$锚定字符串的开头和结尾。当字符串为43:65:25时,开头和结尾都会正确匹配。但是如果你在“时间”之前或之后有任何文字,那么在“时间”匹配之前和之后都找不到开始和结束。因此,只需r'''\d{2}:\d{2}:\d{2}'''即可找到您要找的内容。