我正在尝试匹配可以包含平衡<
和>
字符的 C++ 参数类型。
使用这个正则表达式:
(\<(?>[^<>]|(?R))*\>)
在这个字符串上:QMap<QgsFeatureId, QPair<QMap<Something, Complex> >>
它匹配除前 4 个字符(QMap)之外的所有字符。
现在,如果我\w+
在正则表达式的开头添加,它现在只匹配它的结尾 ( QPair<QMap<Something, Complex> >>
) 而不是整个字符串。
有什么解释以及如何解决这个问题?
你可以在这里在线尝试。
这是打算在 Perl 5.10+ (5.24) 中使用的。