确实在跑步
regex pattern("([a-z])((?!\\1)[a-z])");
cout << regex_match("aa", pattern) << endl;
导致输出“1”,但匹配的第一组是“a”,如果相反我运行
regex pattern("([a-z])((?!a)[a-z])");
cout << regex_match("aa", pattern) << endl;
我按预期得到“0”。
请注意,完全相同的正则表达式在Python 3中的工作方式与预期相同,即运行
re.match("([a-z])((?!\\1)[a-z])", "aa")
不产生任何匹配。有人能解释一下这里发生了什么吗?
仅供参考,我使用的是带有标志-O2和-std = c ++ 11的g ++(tdm64-1)5.1.0。