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