没有匹配的C + + 11正则expression式
为什么在g ++(Debian 4.6.3-1)4.6.3或clang version 3.2(trunk 159457)中找不到匹配项
#include <iostream> #include <string> #include <regex> using namespace std; int main() { string line("test"); regex pattern("test",regex_constants::grep); smatch result; bool ret(false); ret = regex_search(line,result,pattern); cout << boolalpha << ret << endl; cout << result.size() << endl; return 0 ; }
产量
false 0
因为<regex>
尚未在libstdc ++中实现,所以在这里 (§28)中有logging。
现在,请改用Boost.Xpressive或Boost.Regex 。
现在你的例子正确运行:
$ ~/src/gcc/inst/bin/g++ --version g++ (GCC) 4.9.0 20140224 (experimental)
上
$ uname -a Linux ... x86_64 x86_64 x86_64 GNU/Linux
执行
$ ./83-regex.x true 1
根据这个改变,在gcc-4.9和libstd ++ – v3中支持log <regex>