如何从REGEX中的捕获组中排除具有特殊字符的特定单词?

时间:2016-03-01 03:04:38

标签: python regex

我想为下面的文字创建正则表达式:

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+) 

是否可以创建正则表达式?请帮帮我。提前谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个

.*?((?:\d+-?)+).*?((?:\d+\:?)+).*

Regex demo

<强>解释
.:除了换行符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)