为什么会失败?我试图在C ++ STL中使用正则表达式匹配子字符串。 我在这里做错了什么?
GCC版本::(Linaro GCC 4.8-2014.04)4.8.3
#include<regex>
using namespace std;
int main()
{
regex e("auth");
smatch m;
string s="Connected to a:b:c:d completed auth id=3, str=3";
//string s="auth";
bool match = regex_search(s,e);
if( match == true )
printf("matched");
else
printf("no match");
}
答案 0 :(得分:0)
根据文档std::regex_match仅匹配整个字符串。您可能需要std::regex_search
#include<regex>
using namespace std;
int main()
{
regex e("auth");
smatch m;
string s="Connected to a:b:c:d completed auth id=3, str=3";
//string s="auth";
bool match = regex_search(s,e);
if( match == true )
printf("matched");
else
printf("no match");
}
另外,您应该检查您的实施是否支持std::regex
这是C++11
中的新功能。例如,GCC
编译器仅在版本<regex>
及更高版本中正确实现4.9.0
。