Boost.Regex 奇怪之处
有谁知道为什么下面的代码会输出“不匹配”?
boost::regex r(".*\\.");
std::string s("app.test");
if (boost::regex_match(s, r))
std::cout << "match" << std::endl;
else
std::cout << "no match" << std::endl;
Does anyone have any idea why the following code would output "no match"?
boost::regex r(".*\\.");
std::string s("app.test");
if (boost::regex_match(s, r))
std::cout << "match" << std::endl;
else
std::cout << "no match" << std::endl;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我相信 regex_match() 匹配整个字符串。请尝试使用 regex_search()。
它将与以下正则表达式:
和 regex_match() 函数一起使用。但同样,regex_search() 可能就是您正在寻找的。
I believe regex_match() matches against the entire string. Try regex_search() instead.
It would have worked with the following regex:
and the regex_match() function. But again, regex_search() is what you're probably looking for.