使用 QRegexp 从 Qt 中的字符串中删除 xml header

Remove xml header using QRegexp from String in Qt

我想从 Qt 中的字符串中删除 <?xml version="1.0" encoding="UTF-8" ?> 为此,我编写了代码:

outputText.replace(QRegExp("<\?xml.*?\?>"),""); where outputText is QString.

但是 xml header 没有被删除,即使我也尝试使用正则表达式 "\<\?xml(.+?)\?\>" 对于这个 xml heaader 但是这个正则表达式不起作用所以请告诉我将从字符串中删除上述 xml header 的有效正则表达式。

尝试使用:

QRegExp("\<\?xml[^(\?\>)]*\?\>");

您将不得不使用 \ 转义 ><?,它本身需要被 \ 转义才能成为 C/C++ 字符串.

实际上,您可以匹配从 <?xml 开始到下一个 ?> 的所有内容。