Jat*_*tra 0 c++ regex boost boost-regex
我正在玩Boost :: regex,这是我第一次使用正则表达式和Boost,所以请原谅我,如果问题真的很愚蠢.
我得到一个NO_MATCH,其中包含以下值:
actual_name = "q\[0\]123"
user_name = "q[0]123"
Run Code Online (Sandbox Code Playgroud)
PS在调试器中,当我打印actual_name它时显示 - q\\[0\\]123.但是,当我执行actual_name.size()时,结果是9.
这是我的代码:
boost::regex regexpr( actual_name );
boost::match_results<pstring::const_iterator> what;
boost::regex_match(user_name, what, regexpr);
if(what[0].matched)
{
// Match found
}
else
{
// NO_match found
}
Run Code Online (Sandbox Code Playgroud)
我在Rubular.com上尝试了相同的组合,regular_expression = "q\[0\]123"并test-string = "q[0]123"在那里返回一个Complete_Match.
我错过了什么?
"q\[0\]123" 编译?
\[不是反斜杠字符后面跟一个开头的方括号字符.这是一个逃脱序列.我不记得它是一个有效的转义序列,但它可能是你的编译器的扩展.
你需要像它一样转义反斜杠"q\\[0\\]123",或者像使用C++ 11原始字符串文字一样R"(q\[0\]123)".
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |