正则表达式:提取两个标记之间的文本

维特佩罗夫

我正在尝试编写一个Python解析器,以从html页中提取一些信息。

它应该从<p itemprop="xxx">之间提取文本</p>

我使用正则表达式:

m = re.search(ur'p>(?P<text>[^<]*)</p>', html)

但是如果它们之间是另一个标签,则无法解析文件。例如:

<p itemprop="xxx"> some text <br/> another text </p>

据我了解[^<],只有一个符号是例外。如何写“除</p>以外的所有内容

肠杆菌

您可以使用:

m = re.search(ur'p>(?P<text>.*?)</p>', html)

这是一个懒惰的匹配,它将匹配所有内容,直到为止</p>您还应该考虑使用类似BeautifulSoup的HTML解析器,该解析器在安装后可以与CSS选择器一起使用,如下所示:

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
m = soup.select('p[itemprop="xxx"]')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用正则表达式提取两个标记之间的文本

正则表达式提取两个文本之间的文本并保存文本

如何使用正则表达式提取两个标题之间的文本,需要复杂的非捕获组

用于捕获两个正则表达式模式之间的 n 行文本的正则表达式

正则表达式从文本中提取一个或两个值

正则表达式捕获两个动态文本之间的文本

正则表达式用于两个文本之间的文本

仅提取两个正则表达式模式之间的字符串部分

使用正则表达式提取python中两个定义的单词之间的内容

正则表达式提取两个括号之间的数据

提取两个正则表达式之间的字符串

Python正则表达式提取两个特殊字符之间的正数和负数

使用awk和可变正则表达式提取两个模式之间的行

使用正则表达式仅提取两个特定标签之间的数字

在 bash 脚本中提取文件的两个表达式之间的行(使用正则表达式、sed)

正则表达式-提取两个表达式之间的字符串,仅获得最后的出现

如何使用正则表达式排除两个大括号之间的文本?

正则表达式,捕获两个常量之间的任何文本

正则表达式:获取两个单词之间的文本(R中)

正则表达式匹配两个锚点之间的文本

正则表达式提取 2 个正斜杠后面的字符,但忽略两个正斜杠(和后面的文本)是否在双引号之间

两个表达式之间的正则表达式替换

用于 python 的正则表达式捕获两个 XML 标记之间的所有内容

在两个标记字符串之间的字符串中查找/替换正则表达式模式

使用正则表达式删除两个标记之间的任意数量的换行符

当模式在块内匹配时,删除两个正则表达式标记之间的块

正则表达式:在两个标签(或两个星号)之间匹配换行

使用命令提示符在两个文本之间获取文本的正则表达式

使用jsoup从两个标签之间提取未识别的html内容?正则表达式?