У меня есть два вектора, один из которых содержит мои регулярные выражения, а другой содержит строку, в которой будут проверяться регулярные выражения, большинство из них работают нормально, за исключением этого (показанного ниже), строка является правильной строкой и соответствует регулярному выражению, но выводит неправильный вместо правильного.
INPUT STRING
.C/IATA
КОД НИЖЕ
std::string errorMessages [6][6] = {
{
"Correct Corparate Name\n",
},
{
"Incorrect Format for Corporate Name\n",
}
};
std::vector<std::string> el;
split(el,message,boost::is_any_of("\n"));
std::string a = ("");
for(int i = 0; i < el.size(); i++)
{
if(el[i].substr(0,3) == ".C/")
{
DCS_LOG_DEBUG("--------------- Validating .C/ ---------------");
output.push_back("\n--------------- Validating .C/ ---------------\n");
str = el[i].substr(3);
split(st,str,boost::is_any_of("/"));
for (int split_id = 0 ; split_id < splitMask.size() ; split_id++ )
{
boost::regex const string_matcher_id(splitMask[split_id]);
if(boost::regex_match(st[split_id],string_matcher_id))
{
a = errorMessages[0][split_id];
DCS_LOG_DEBUG("" << a )
}
else
{
a = errorMessages[1][split_id];
DCS_LOG_DEBUG("" << a)
}
output.push_back(a);
}
}
else
{
DCS_LOG_DEBUG("Do Nothing");
}
st [split_id] = "IATA"
splitMask [split_id] = "[a-zA-Z] {1,15}" <--- </strong>
Но он по-прежнему выводит Неправильный формат для корпоративного имени
Я не понимаю, почему он печатается неправильно, когда он должен быть правильным. Может кто-нибудь помочь мне здесь, пожалуйста?