捕获正则表达式中的内容

时间:2014-06-20 23:01:16

标签: python regex

我有以下文字:

text = itunes20140618.tbz

我如何使用正则表达式捕获日期?

我目前正在做:

date = text.split('.tbz')[0].split('itunes')[-1]

我认为在这里使用re.findall对于我想做的事情会更清洁。请注意在正则表达式中,它需要在特定单词" itunes"之后。对于捕获组(不仅仅是数字)。

2 个答案:

答案 0 :(得分:2)

您可以使用re.search找到所需的匹配项。

>>> import re
>>> re.search(r'\d+', 'itunes20140618.tbz').group()
'20140618'

由于您声明必须在 itunes 之后,您可以使用capturing group并参考该组号来访问您的匹配。

>>> import re
>>> re.search(r'itunes(\d+)', 'itunes20140618.tbz').group(1)
'20140618'

您还可以使用 Positive Lookbehind 来确保 itunes 之后的内容。

>>> re.search(r'(?<=itunes)\d+', 'itunes20140618.tbz').group()
'20140618'

答案 1 :(得分:1)

正则表达式:

[^\d]*(\d+).*

Live demo

如果您保证表达式将采用以下形式: itunes后跟date,然后你也可以使用它:

itunes(\d+).*