【发布时间】:2011-06-29 17:33:38
【问题描述】:
我的字符串如下所示:
{server}_{date:YYYYMMDD}{int:######}
{server}_{date:MON DAY YYYY}{int:######}
...还有更多,以不同的日期格式。此外,可以有任意数量的 {} 块,并且它们可以以任意顺序出现。
我试图在 Python 3.2 中仅获取大括号之间的“日期”部分。因此,对于第一个字符串,我只想获得“{date:YYYYMMDD}”,而对于第二个字符串,我只想获得“{date:MON DAY YYYY}”。我想要在“日期”块中的唯一字符是字母和空格。
我的正则表达式模式是:
\{date:(\w|\s)*\}
我已在 this Regex builder 上对此进行了测试,但与预期的不匹配。这是我在 Python 上的输出:
>>> import re
>>> re.findall('\{date:(\w|\s)*\}', '{server}_{date:YYYYMMDD}{date:MONDAYYYYY}{int:######}')
['D', 'Y']
>>> re.findall('\{date:(\w|\s)*\}', '{server}_{date:MON DAY YYYY}{int:######}')
['Y']
谁能指出我的模式有什么问题?
【问题讨论】:
-
感谢您的所有回答!现在看看每个人的答案,很明显我在我的问题中遗漏了重要的细节。我编辑了我的帖子并添加了更多细节。