Python正则表达式没有从我的日志文件中提取子字符串

Python正则表达式没有从我的日志文件中提取子字符串,python,regex,parsing,log-analysis,Python,Regex,Parsing,Log Analysis,我正在使用 date = re.findall(r"^(?:\w{3} ){2}\d{2} (?:[\d]{2}:){2}\d{2} \d{4}$", message) 在Python 2.7中,要提取子字符串: Wed Feb 04 13:29:49 2015 Thu Feb 05 13:45:08 2015 从这样的日志文件: 1424,Wed Feb 04 13:29:49 2015,51 1424,Thu Feb 05 13:45:08 2015,29 它不起作用,我必须使用reg

我正在使用

date = re.findall(r"^(?:\w{3} ){2}\d{2} (?:[\d]{2}:){2}\d{2} \d{4}$", message)
在Python 2.7中,要提取子字符串:

Wed Feb 04 13:29:49 2015
Thu Feb 05 13:45:08 2015
从这样的日志文件:

1424,Wed Feb 04 13:29:49 2015,51
1424,Thu Feb 05 13:45:08 2015,29

它不起作用,我必须使用regex来完成这个任务,否则我会拆分它。我做错了什么?

您不需要
regex
,请使用
split

line = "1424,Wed Feb 04 13:29:49 2015,51"
date = line.split(",")[1]
print date
>>>Wed Feb 04 13:29:49 2015

您不需要
regex
,请使用
split

line = "1424,Wed Feb 04 13:29:49 2015,51"
date = line.split(",")[1]
print date
>>>Wed Feb 04 13:29:49 2015

由于子字符串不是从字符串的第一部分开始的,因此不需要在字符串的开始和结束处声明位置,这样就可以删除
^
$
:

此外,作为替代方案,您可以使用:


由于子字符串不是从字符串的第一部分开始的,因此不需要在字符串的开始和结束处声明位置,这样就可以删除
^
$
:

此外,作为替代方案,您可以使用:


一个简单的方法就是用逗号匹配

message = '1424,Wed Feb 04 13:29:49 2015,51 1424,Thu Feb 05 13:45:08 2015,29'
date = re.findall(r",(.*?),", message)
print date

>>> ['Wed Feb 04 13:29:49 2015', 'Thu Feb 05 13:45:08 2015']

一个简单的方法就是用逗号匹配

message = '1424,Wed Feb 04 13:29:49 2015,51 1424,Thu Feb 05 13:45:08 2015,29'
date = re.findall(r",(.*?),", message)
print date

>>> ['Wed Feb 04 13:29:49 2015', 'Thu Feb 05 13:45:08 2015']

我正在这样做,但我发现手头的任务需要正则表达式。不,它不需要,如上所示。正如我在问题中所说,“任务需要正则表达式”,这意味着我正在寻找涉及正则表达式的解决方案。我正在这样做,但我发现手头的任务需要正则表达式。不,它不需要,如上所示。正如我在问题中所述,“任务需要正则表达式”,这意味着我正在寻找涉及正则表达式的解决方案。正如您在我的示例中所看到的,我正在处理多行代码,而任务需要正则表达式。thx-tho.@mdandr和我在使用正则表达式?这不管用吗?如果是这样的话,你能提供一个样本文件,我会在我这边测试它吗?哦,我明白了。谢谢,我没看见。然而,我需要一个更明确的正则表达式,我的问题是,我用一个
^
开始我的正则表达式,然后用一个
$
结束它。正如您在我的示例中所看到的,我使用多行,并且任务需要正则表达式。thx-tho.@mdandr和我在使用正则表达式?这不管用吗?如果是这样的话,你能提供一个样本文件,我会在我这边测试它吗?哦,我明白了。谢谢,我没看见。但是我需要一个更明确的正则表达式,我的问题是我用一个
^
开始我的正则表达式,然后用一个
$
结束它。谢谢Kasra AD。我认为
^
$
意味着忽略前后的任何内容,但是你的解释澄清了一切。谢谢感谢Kasra广告。我认为
^
$
意味着忽略前后的任何内容,但你的解释澄清了问题。谢谢
message = '1424,Wed Feb 04 13:29:49 2015,51 1424,Thu Feb 05 13:45:08 2015,29'
date = re.findall(r",(.*?),", message)
print date

>>> ['Wed Feb 04 13:29:49 2015', 'Thu Feb 05 13:45:08 2015']