我没有正则表达式的经验,我尝试了几次,但从未坚持过它。
我使用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})
答案 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