我正在使用 QRegularExpression(Qt C++ 库),我想从字符串中提取单词 ABC,如下所示(是的,斜杠引号位于字符串中):
\"ABC\" <DEF>
作为 C++ QString 文字将是:
QString subject = "\"ABC\" <DEF>";
我定义了以下QRegularExpression:
QRegularExpression regex("\\\"([^\\]*)\\\"");
但是正则表达式将与上面的字符串文字不匹配! 我已经在几个在线正则表达式测试器中尝试过(像这样)并且效果很好! 但在 C++ 中,捕获组始终为空。
以上有什么问题吗? 我怀疑有所有转义符 (\) 的东西,但看不到它。
更新:我还尝试了以下原始字符串文字,结果相同:
QRegularExpression 正则表达式(R""([^\]*)"");
您的 QRegularExpression 正则表达式("\"([^\]*)\"") 当前匹配除 之外的任何字符。
更改为 QRegularExpression regex("\"([^\"]*)\"");