我有一個看起來像這些字符串:Python的正則表達式來提取日期
{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']
有人能指出我的模式有什麼問題嗎?
感謝您的所有答案!現在看看每個人的答案,很明顯我忽略了我的問題中的重要細節。我編輯了我的帖子並添加了更多的細節。 – tgxiii