确实在跑步
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“。
请注意,在Python3中,完全相同的正则表达式可以正常工作,即运行
re.match("([a-z])((?!\\1)[a-z])", "aa")
不生成匹配项。有人能解释一下这里发生了什么吗?
仅供参考,我使用的是带有-O2和-std=c++11标志的g++ (tdm64-1) 5.1.0。
https://stackoverflow.com/questions/40182835
复制相似问题