使用正则表达式删除 html 实体并提取文本内容

Posted

技术标签:

【中文标题】使用正则表达式删除 html 实体并提取文本内容【英文标题】:Remove html entities and extract text content using regex 【发布时间】:2014-11-25 11:47:40 【问题描述】:

我有一个仅包含 html 实体的文本,例如 <  我需要将其全部删除并仅获取文本内容:

&nbspHello there<testdata>

所以,我需要从这部分获取Hello theretestdata。有没有办法使用负前瞻来做到这一点?

我尝试了以下方法:/((?!&.+;).)+/ig 但这似乎效果不佳。那么,我怎样才能从那里提取所需的文本呢?

【问题讨论】:

【参考方案1】:

查找 HTML 实体的更好语法是以下正则表达式:

/&([a-z0-9]+|#[0-9]1,6|#x[0-9a-fA-F]1,6);/ig

此语法忽略虚假实体。

【讨论】:

这不一定重要,但值得注意的是,这在技术上并不全面。 &amp&#123{ 都是有效的 HTML 实体,不会与之匹配。 [a-z0-9]+ 匹配 &amp 和类似的形式,而 #[0-9]1,6 匹配从 到

以上是关于使用正则表达式删除 html 实体并提取文本内容的主要内容,如果未能解决你的问题,请参考以下文章

从 HTML 中提取文本的正则表达式

PHP正则表达式取文本中间内容。

使用vba做一个正则表达式提取文本工具

Matches正则使用提取内容

正则表达式:在 Google Bigquery 中提取正斜杠后的所有内容?

正则表达式替换以删除 html 标记之间的空格