0

我知道正则表达式不适合解析 html,但是这只是一个归入函数的单行字符串。例如,<font color = "#ff0000"> hello </font>。现在对于正则表达式,如果正确关闭,我希望它匹配,我发现做^<font(.*?)</font>$很接近但不能处理所有事情。例如,如果输入是<font color = "#ff0000"> hello </div>它会说它不正确。但如果是<font color = "#ff0000"> hello </font></font>这样,它会说它是正确的并且不会发现错误。所以问题是,检查单个字符串上未关闭的字体标签的好模式是什么?我正在使用 python,但 JavaScript 方法也可以

4

2 回答 2

0

你是对的,正则表达式对于解析 HTML 不是很好。Python 作为 HTML 解析器http://docs.python.org/2/library/htmlparser.html应该有助于完成这项任务。

于 2013-09-14T00:18:36.377 回答
0

不要这样做,让浏览器修复它;将其设置为虚拟Node的innerHTML,然后检索innerHTML

function reParse(str) {
    var div = document.implementation.createHTMLDocument().createElement('div');
    div.innerHTML = str;
    return div.innerHTML;
}
reParse('<font color = "#ff0000"> hello </font></font>');
// "<font color="#ff0000"> hello </font>"
reParse('<div><font color = "#ff0000"> hello </div>');
// "<div><font color="#ff0000"> hello </font></div>"

使用createHTMLDocument可防止加载资源。

于 2013-09-14T00:19:04.047 回答