使用正则表达式删除 html 实体并提取文本内容
Posted
技术标签:
【中文标题】使用正则表达式删除 html 实体并提取文本内容【英文标题】:Remove html entities and extract text content using regex 【发布时间】:2014-11-25 11:47:40 【问题描述】:我有一个仅包含 html 实体的文本,例如 <
和  
我需要将其全部删除并仅获取文本内容:
 Hello there<testdata>
所以,我需要从这部分获取Hello there
和testdata
。有没有办法使用负前瞻来做到这一点?
我尝试了以下方法:/((?!&.+;).)+/ig
但这似乎效果不佳。那么,我怎样才能从那里提取所需的文本呢?
【问题讨论】:
【参考方案1】:查找 HTML 实体的更好语法是以下正则表达式:
/&([a-z0-9]+|#[0-9]1,6|#x[0-9a-fA-F]1,6);/ig
此语法忽略虚假实体。
【讨论】:
这不一定重要,但值得注意的是,这在技术上并不全面。&amp
、&#123
和 &#000000000000000000123;
都是有效的 HTML 实体,不会与之匹配。
[a-z0-9]+ 匹配 & 和类似的形式,而 #[0-9]1,6 匹配从 到 以上是关于使用正则表达式删除 html 实体并提取文本内容的主要内容,如果未能解决你的问题,请参考以下文章