Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用QRegularExpression将嵌套捕获组与量词匹配_C++_Regex_Qt_Regex Group_Qregularexpression - Fatal编程技术网

C++ 使用QRegularExpression将嵌套捕获组与量词匹配

C++ 使用QRegularExpression将嵌套捕获组与量词匹配,c++,regex,qt,regex-group,qregularexpression,C++,Regex,Qt,Regex Group,Qregularexpression,我试图通过QRegularExpression获取不同捕获组中xml标记的所有属性。我使用与标记匹配的正则表达式,并设法获得包含属性值的捕获组,但使用量词,我只获得最后一个 我使用这个正则表达式: <[a-z]+(?: [a-z]+=("[^"]*"))*> 可能有助于您简单地捕获这些属性,并且它不受左右限制: ([A-z]+)(=\x22)([A-z]+)(\x22) 图表 此图显示了表达式的工作方式,如果您希望了解以下内容,您可以在此图中可视化其他表达式: 如果您想为其

我试图通过QRegularExpression获取不同捕获组中xml标记的所有属性。我使用与标记匹配的正则表达式,并设法获得包含属性值的捕获组,但使用量词,我只获得最后一个

我使用这个正则表达式:

<[a-z]+(?: [a-z]+=("[^"]*"))*>
可能有助于您简单地捕获这些属性,并且它不受左右限制:

([A-z]+)(=\x22)([A-z]+)(\x22)

图表 此图显示了表达式的工作方式,如果您希望了解以下内容,您可以在此图中可视化其他表达式:


如果您想为其添加额外的边界(您可能希望这样做),您可以进一步扩展它,可能会扩展到:


(?:^为什么使用正则表达式?请看。这里有一个。更一般的:因为我在QSyntaxHighlighter中使用了它^^谢谢你的帮助。但是在这里,我仍然必须使用正则表达式引擎(QRegularExpressionMatchIterator)循环,我们不能在一个匹配的不同捕获组中拥有所有属性。对吗?
Match with 2 captured groups
"<p a=\"a\" b=\"b\">"
"\"b\""
([A-z]+)(=\x22)([A-z]+)(\x22)
(?:^<p )?([A-z]+)(=\x22)([A-z]+)(\x22)