findall()在Python REGEX中的html文件上返回空字符串

时间:2017-01-10 19:54:04

标签: python regex findall

我正在使用Python学习正则表达式,我正在使用Regex上的Google Tutorial进行婴儿名称练习。 html文件--baby1990.html--位于压缩文件中,可在此处下载:https://developers.google.com/edu/python/set-up('下载Google Python练习')

年份放在标签内。 html代码如下:

<h3 align="center">Popularity in 1990</h3>

我使用以下代码从文件中提取年份:

f = open('C:/Users/ALEX/MyFiles/JUPYTER NOTEBOOKS/google-python-exercises/babynames/baby1990.html', 'r')

strings = re.findall(r'<h3 align="center">Popularity in (/d/d/d/d)</h3>', f.read())

我已经使用RegularExpressions101网站对该模式进行了测试,但它确实有效。

但是&#39;字符串&#39;返回的列表为空。

LEN(字符串) 出

1 个答案:

答案 0 :(得分:0)

我认为在上下文字符串中匹配一年的最佳方法是使用re.searchre.match

例如:

import re

tag = """<h3 align="center">Popularity in 1990</h3>"""

mo = re.search(r"Popularity in (\d{4})", tag)
year = mo.group(1) if mo else ""

print(year)
# -> 1990

当然,如果你想找到所有的比赛,你需要使用re.findall ...

您检查Python RegEx,也可以使用https://regex101.com/

在线尝试