为什么这个简单的 QRegExp 不匹配?
Why doesn't this simple QRegExp match?
很简单,这是失败的测试代码。
QRegExp BASIC_FORMAT ("^\s*(.+?)\s*,\s*(.+)\s*$");
QString test = "Catherine the Great, Szczecin 2/5/1729 to Saint Petersburg 17/11/1796";
qDebug ("%i", BASIC_FORMAT .indexIn (test));
这会打印 -1,尽管如果我将字符串复制到类似 regex101.com 的内容中(当然,我自己解析双反斜杠),那么它会按预期匹配。
为什么 QRegExp 在这种情况下不匹配?
QRegExp 不支持像 +?
这样的非贪婪量词
您可以改用 [^,]+
很简单,这是失败的测试代码。
QRegExp BASIC_FORMAT ("^\s*(.+?)\s*,\s*(.+)\s*$");
QString test = "Catherine the Great, Szczecin 2/5/1729 to Saint Petersburg 17/11/1796";
qDebug ("%i", BASIC_FORMAT .indexIn (test));
这会打印 -1,尽管如果我将字符串复制到类似 regex101.com 的内容中(当然,我自己解析双反斜杠),那么它会按预期匹配。
为什么 QRegExp 在这种情况下不匹配?
QRegExp 不支持像 +?
您可以改用 [^,]+