Python BeautifulSoup4按文本正则表达式搜索标记

Python BeautifulSoup4按文本正则表达式搜索标记,python,parsing,beautifulsoup,html-parsing,Python,Parsing,Beautifulsoup,Html Parsing,我有两个场景,我想使用正则表达式通过文本搜索标记 soup = BeautifulSoup("<B><A NAME="toc96446_13"></A>TEXT </B></P>", "html5lib") soup.find('b', text=re.compile('TEXT')) soup=BeautifulSoup(“TEXT”,“html5lib”) soup.find('b',text=re.compile('text')

我有两个场景,我想使用正则表达式通过文本搜索标记

soup = BeautifulSoup("<B><A NAME="toc96446_13"></A>TEXT </B></P>", "html5lib")
soup.find('b', text=re.compile('TEXT'))
soup=BeautifulSoup(“TEXT

”,“html5lib”) soup.find('b',text=re.compile('text'))
我假设这不起作用,因为里面的标签实际上包含我的文本

还有,如何找到只包含数字的标记

soup = BeautifulSoup("<p>169</p>", "html5lib")
soup.find('p', text=re.compile(r'[0-9]{1,}'))
soup=BeautifulSoup(“html5lib”)
soup.find('p',text=re.compile(r'[0-9]{1,}'))

感谢Fir搜索元素,您可以使用
lambda
tag.text

from bs4 import BeautifulSoup
import re

data = """
<B><A NAME="toc96446_13"></A>TEXT</B></P>
"""
soup = BeautifulSoup(data, 'html5lib')
print(soup.find(lambda t: t.name=='b' and re.search(r'TEXT', t.text)))
印刷品:

<b><a name="toc96446_13"></a>TEXT</b>
<p>169</p>
169


Fir搜索元素您可以使用
lambda
tag.text

from bs4 import BeautifulSoup
import re

data = """
<B><A NAME="toc96446_13"></A>TEXT</B></P>
"""
soup = BeautifulSoup(data, 'html5lib')
print(soup.find(lambda t: t.name=='b' and re.search(r'TEXT', t.text)))
印刷品:

<b><a name="toc96446_13"></a>TEXT</b>
<p>169</p>
169