Python 我可以这样做findall正则表达式吗?

Python 我可以这样做findall正则表达式吗?,python,regex,beautifulsoup,findall,Python,Regex,Beautifulsoup,Findall,所以我需要抓取像这样的线后面的数字 <div class="gridbarvalue color_blue">79</div> 79 及 79 是否有一种方法可以执行findAll('div',text=re.recompile(')在哪里可以找到带有gridbarvalue颜色的标记 我用的是beautifulsoup 如果我没有把问题说清楚,我也很抱歉,我在这方面很缺乏经验 重新导入 import re elems = soup.findAll(attrs={

所以我需要抓取像这样的线后面的数字

<div class="gridbarvalue color_blue">79</div> 
79

79
是否有一种方法可以执行
findAll('div',text=re.recompile(')
在哪里可以找到带有
gridbarvalue颜色的标记

我用的是beautifulsoup

如果我没有把问题说清楚,我也很抱歉,我在这方面很缺乏经验

重新导入
import re
elems = soup.findAll(attrs={'class' : re.compile("color_(blue|red)")})
for each e in elems:
    m = re.search(">(\d+)<", str(e))
    print "The number is %s" % m.group(1)
elems=soup.findAll(attrs={'class':re.compile(“color|(blue | red)”)}) 对于每个e in元素:
m=re.search(“>(\d+)
class
是一个Python关键字,因此BeautifulSoup希望您在将其用作关键字参数时在其后面加一个下划线

>>> soup.find_all('div', class_=re.compile(r'color_(?:red|blue)'))
[<div class="gridbarvalue color_blue">79</div>, <div class="gridbarvalue color_red">79</div>]
>>soup.find_all('div',class_=re.compile(r'color_(?:red | blue)))
[79, 79]
要同时匹配文本,请使用

>>> soup.find_all('div', class_=re.compile(r'color_(?:red|blue)'), text='79')
[<div class="gridbarvalue color_blue">79</div>, <div class="gridbarvalue color_red">79</div>]
>>soup.find_all('div',class_u=re.compile(r'color(?:red | blue)),text='79')
[79, 79]

你的意思是你想提取数字
79
?是的,就像我说的有多行一样,我想获取数字。你想让它得到数字
79
对吗?你应该能够使用BeautifulSoup来做这件事,而不需要正则表达式。查看已经发布的数千个问题,了解解析HTML的原因正则表达式不好。我认为应该使用
e.strip()
而不是使用正则表达式来提取。
>>> soup.find_all('div', class_=re.compile(r'color_(?:red|blue)'), text='79')
[<div class="gridbarvalue color_blue">79</div>, <div class="gridbarvalue color_red">79</div>]