正则表达式未按预期捕获

问题描述 投票:0回答:1

我正在使用 QRegularExpression(Qt C++ 库),我想从字符串中提取单词 ABC,如下所示(是的,斜杠引号位于字符串中):

\"ABC\" <DEF>

作为 C++ QString 文字将是:

QString subject = "\"ABC\" <DEF>";

我定义了以下QRegularExpression:

QRegularExpression regex("\\\"([^\\]*)\\\"");

但是正则表达式将与上面的字符串文字不匹配! 我已经在几个在线正则表达式测试器中尝试过(像这样)并且效果很好! 但在 C++ 中,捕获组始终为空。

以上有什么问题吗? 我怀疑有所有转义符 (\) 的东西,但看不到它。


更新:我还尝试了以下原始字符串文字,结果相同:

QRegularExpression 正则表达式(R""([^\]*)"");

c++ qt5 qregularexpression
1个回答
0
投票

您的 QRegularExpression 正则表达式("\"([^\]*)\"") 当前匹配除 之外的任何字符。

更改为 QRegularExpression regex("\"([^\"]*)\"");

© www.soinside.com 2019 - 2024. All rights reserved.