【发布时间】:2016-08-02 23:47:38
【问题描述】:
我有一个 RichText,我将 QTextEdit 中的 Html 源存储在一个字符串中。 我想做的是一一提取所有行(我有 4-6 行)。 字符串如下所示:
//html opening stuff
<p style = attributes...><span style = attributes...>My Text</span></p>
//more lines like this
//html closing stuff
所以我需要从开始 p 标签到结束 p 标签的整行(也包括 p 标签)。 我检查并尝试了在这里和其他网站上找到的所有内容,但仍然没有结果。
这是我的代码(“htmlStyle”是输入字符串):
QStringList list;
QRegExp rx("(<p[^>]*>.*?</p>)");
int pos = 0;
while ((pos = rx.indexIn(htmlStyle, pos)) != -1) {
list << rx.cap(1);
pos += rx.matchedLength();
}
或者有没有其他方法可以在没有正则表达式的情况下做到这一点?
【问题讨论】:
-
这个问题是一个经典的 X-Y 问题,在您告诉我们为什么需要在富文本文档中迭代段落之前是不完整的。你将如何处理这些段落?请注意,“我将进一步解析它们”不是要走的路:您真的不想编写自己的 HTML 解析器。除非您对其进行解析,否则您无法处理其中包含一些 HTML 的文本字符串。将解析留给 Qt,无论如何它已经做到了。利用 Qt 允许您访问的 HTML 解析器。
-
您可以尝试使用 QDomDocument 的 xml 阅读器
标签: html regex qt extract qregexp