Qt 中的 QRegExp 和空字符

QRegExp and Null Character in Qt

我想用正则表达式在二进制文件中搜索。 我在文本文件中搜索成功,但在二进制文件中不匹配,因为函数 indexIn 中的 QRegExp 在遇到 NULL 字符 (chr(0)) 时停止搜索。 我该怎么做才能解决这个问题?

QString 可以包含空字符,只是它的构造函数不一致...

QString::fromUtf8(const char *str, int size = -1) 使用给定大小,而 QString::fromUtf8(const QByteArray &str) 强制使用 strlen 而不是使用 bytearray 大小。自己看看 Qt code.

QRegExp也支持空字符:

QString s(QChar(0));
QRegExp re(s);
qDebug() << re.indexIn(s); // will print 0, not -1