这很奇怪,我有以下 std::regex (rx)
\{\{alternate form of\s*\|(?:\d=)?(.*?)([\|#][^\|}]*)*\}\}
给定此字符串 (str) 时,哪个 regex_search 返回 true
{{alternate form of|abate|nodot=1}} {{qualifier|abbot}}.
但是当我调用 regex_match(str, m, rx) 时,匹配集 m 为空。在 RegexBuddy 中使用 JavaScript 模式(这似乎是我能找到的最接近 VS2012 的正则表达式支持的行为)正确找到了匹配项。有人有什么想法吗?正则表达式看起来过度指定,因为其他一些字符串需要匹配的额外部分......