我想用BeautifulSoup标识一个大文本文档中的拆分点。因此,我制定了一个正则表达式来查找出现特定字符串的标记。问题是,如果在我搜索的字符串中有进一步的格式化/子节点,它将不起作用。你知道吗
t1 = BeautifulSoup("<p class=\"p p8\"><strong>Question-And-Answer</strong></p>")
t2 = BeautifulSoup("<p class=\"p p8\"><strong>Question</strong>-<strong>And</strong>-<strong>Answer</strong></p>")
t1.find(text = re.compile("Question[s]*-And-Answer[s]*", re.IGNORECASE))
>>> 'Question-And-Answer'
t2.find(text = re.compile("Question[s]*-And-Answer[s]*", re.IGNORECASE))
>>> None
输出应该是p
标记对象。你知道吗
这里的问题是,您要查找的文本在
p
节点内用strong
标记分割,因此在.find
中使用text
参数的regex搜索将不起作用,这只是它在BS中的实现方式。你知道吗如果您知道文本在
p
节点中,可以在.find
调用中使用lambda表达式,并对每个p
标记的text
属性运行regex搜索,以找到所需的元素:注意
[s]
与regex中的s
相同。你知道吗相关问题 更多 >
编程相关推荐