正则表达式:简单匹配

时间:2014-11-10 17:47:38

标签: python regex

我没有正则表达式的经验,我尝试了几次,但从未坚持过它。

我使用BeautifulSoup在python中删除了一个网站,并且遇到了img个标记,这些标记具有id属性,可用于提取我想要的数据。但我需要一个正则表达式来提取符合id约束的所有数据。约束条件如下:

img-%d:%d是0到255之间的整数位

<img id="img-1" ...> <img id="img-2" ...> <img id="img-3" ...> ... <img id="img-25" ...> ... <img id="img-255" ...>

在正则表达式中,我如何编写表达式以查找img-%d。 我知道\d用于匹配单个数字,但我有300个可能的数字,[0-9]在这里不起作用。

代码非常简单我只是错过了正则表达式。

#regex_needed = re.comple( 'expresion here )
soup.find_all('img', attrs={'id': regex_needed})

2 个答案:

答案 0 :(得分:3)

您可以使用正则表达式

img-\d{1,3}

将匹配至少1个,最多3个字符

import re

pat=re.compile(r'img-\d{1,3}')

soup.find_all('img', attrs={'id': pat}

答案 1 :(得分:1)

如果你想要一个比nu11p01n73R更具体的正则表达式只能用于0-255,那么试试这个你的模式:

\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b

Source