Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式:匹配一个或另一个命名组_Python_Regex - Fatal编程技术网

Python正则表达式:匹配一个或另一个命名组

Python正则表达式:匹配一个或另一个命名组,python,regex,Python,Regex,我有一个字符串,可以包含以下内容: lots of text Nov 30 2011 lots more of text 或 我想匹配的是该行中的日期。我想得到的是第一行的以下内容: {'date': 'Nov 30 2011', 'time': None} 或第二行: {'date': None, 'time': 'Nov 30 12:48'} 所以我的想法是: re.match( '^.+((?P<date>\w{3} \d{1,2} \d{4})|(?P&l

我有一个字符串,可以包含以下内容:

lots of text Nov 30  2011 lots more of text

我想匹配的是该行中的日期。我想得到的是第一行的以下内容:

{'date': 'Nov 30  2011', 'time': None}
或第二行:

{'date': None, 'time': 'Nov 30 12:48'}
所以我的想法是:

re.match(
    '^.+((?P<date>\w{3} \d{1,2}  \d{4})|(?P<time>\w{3} \d{1,2}:\d{2})).+', 
    line
)
re.match(
“^.+((?P\w{3}\d{1,2}\d{4})|”(?P\w{3}\d{1,2}:\d{2}))。”,
线
)
但这不起作用,它返回
None
。我尝试了一些其他的组合,但都不起作用


我怎样才能做到这一点?

您错过了
小组的一天(例如“11月12:48”):

工作示例:(无名称)

re.match(
    '^.+((?P<date>\w{3} \d{1,2}  \d{4})|(?P<time>\w{3} \d{1,2}:\d{2})).+', 
    line
)
(?P<date>\w{3} \d{1,2}  \d{4})|(?P<time>\w{3} \d{1,2} \d{1,2}:\d{2})
(?P<date>\w{3}\s+\d{1,2})\s+(?:(?P<year>\d{4})|(?P<time>\d{1,2}:\d{2}))