首页 > 解决方案 > 正则表达式在迭代dict时只从字符串中检索数字?

问题描述

我试图2019/2020 (dddd/dddd)从一个看起来像这样的字符串中检索以下内容FA WSL Cup Season 2019/2020。共同的因素是所需的内容总是排在最后。所以在迭代时我想通过使用正则表达式来提取它,但我不知道任何正则表达式。所以下面的伪示例:

for i in cont.values():
    label = PERFROM REGEX ON i['label']
    season_info[abbreviation] += [APPEND REGEX VERSION]

非常感谢,

标签: pythonregex

解决方案


以下是使用 RegEx 提取此类数据的方法:

import re

result = re.findall( r'(\b(\d{4}/\d{4}\b)', 'FA WSL Cup Season 2019/2020')
print(result)

输出

['2019/2020']

让我为您分解解决方案:

\b指的是分词,适用于空格和行尾。
\d表示任何数字(任何数字)。{4}表示我想要 4 个数字(一个接一个,重复 4 个)
/ 将只是分隔两个 4 位数字组的字符。 使用()我指示 RegEx 这将是我要提取的组。

我还建议使用在线 RegEx 测试器来学习并测试您的正则表达式。

这是我使用的两个示例:

这是我觉得非常棒的初学者课程:


推荐阅读