我是python的新手,并尝试制作一个简单但可理解的正则表达式来匹配包含这些行的文件:
月(2个字母),日期和时间
Sep 15 04:34:02
到目前为止的正则表达式:
我设法匹配月份,但不知道如何匹配空格和数字。希望有人可以帮助我:
with open('file.txt','r') as file:
for line in file:
fil = re.findall('^\D{3}\d{1,2}',line)
print " ".join(fil)
答案 0 :(得分:2)
您可以使用以下内容:
^\D{3}\s+\d{1,2}\s+\d{2}(:\d{2}){2}
<强>解释强>
\D{3}
任意三位非数字\s+
一个或多个空格\d{1,2}
一到两位数字\d{2}
正好两位数(:\d{2}){2}
两次出现(:
后跟两位数字) 提示1:为了更准确,请将\D
替换为[a-zA-Z]
,因为您不希望在此处允许任何非数字。
提示2:您还希望使用[0-2]\d(:[0-5]\d){2}
来匹配时间..
最终正则表达式:
^[a-zA-Z]{3}\s+\d{1,2}\s+[0-2]\d(:[0-5]\d){2}
答案 1 :(得分:0)
试一试:
[A-Za-z]{3}\s\d{1,2}\s(?:\d{1,2}:){2}\d{1,2}
[A-Za-z]{3}
- &gt;三个字母 - &gt;月
\s
- &gt;空间
\d{1,2}
- &gt;两位数 - &gt; 15
\s
- &gt;空间
(?:\d{1,2}:){2}\d{1,2}
- &gt;时间 - &gt; 4时34分02秒