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>]