python - 捕获正则表达式中的内容

标签 python regex

我有以下文字:

text = itunes20140618.tbz

如何使用正则表达式捕获此处的日期?

我目前正在做的事情:

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

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

最佳答案

您可以使用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'

关于python - 捕获正则表达式中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24336852/

相关文章:

regex - RewriteRule ^(.*)/$ ?path=$1 [QSA,L] 在我的 .htaccess 中是什么意思?

python - 为什么我的 A* 搜索返回与 UniformCostSearch 相同的扩展空间?

python - 使用 python 在 postgres 中添加新的几何列

python - 将 Pandas Dataframe 日期索引和列转换为 Numpy 数组

python - Python 的 asyncio 的高可用性

php - 法语字符的正则表达式

java - 查找符合特定格式的所有子字符串

python - 如果记录具有与其相关的外键对象,则过滤 SQLAlchemy 对象中的记录

regex - 正则表达式 f#

c# - 正则表达式 C#。匹配特定的子字符串并仅返回该子字符串