我想为下面的文字创建正则表达式:
date=2016-02-25 time=10:14:22+0000
在此我们需要捕获如下(单一捕获组)
2016-02-25 10:14:22
我在Regex下面试过但我无法实现我的O / P:
^(?!time=)\D+(\d{4}\-\d+\-\d+\s\D+\d+\:\d+\:\d+)
是否可以创建正则表达式?请帮帮我。提前谢谢!
答案 0 :(得分:0)
试试这个
.*?((?:\d+-?)+).*?((?:\d+\:?)+).*
<强>解释强>
.
:除了换行符sample之外的任何字符
*
:零次或多次sample
?
:一次或无sample
( … )
:捕获小组sample
(?: … )
:非捕获组sample
\
:逃脱一个特殊字符sample
+
:一个或多个sample
答案 1 :(得分:0)
您可以使用单独的组捕获日期和时间,并使用Python的字符串运算符将它们连接在一起:
import re
text = 'date=2016-02-25 time=10:14:22+0000'
pattern = r'^date=(\d{4}-\d{2}-\d{2}) time=(\d{2}:\d{2}:\d{2})[+-]\d{4}$'
match = re.match(pattern, text.strip())
result = " ".join(match.groups())
print(result)