我正在尝试检索前三个字母上确定的字符串的整行,然后发送通过正则表达式检索的行,我必须检查字符串。所以这个小程序的流程如下
**“。N /”= ** 1TLIS / PART / 123456789I / A / 1234RFGH67323和AT0931 / 2DEC / GVA / Y **** 然后两个字符串将一个接一个地发送到正则表达式。
那么有没有一种方法可以获得所有以 .N / 开头的行,然后逐行发送以通过正则表达式进行检查?如果只有一行以 .N / 开头,我知道如何做到这一点,但如果有两个我尝试追加但不行,但我没想办法工作。
std::string message = ".N/1TLIS/PART/123456789I/A/1234RFGH67323\n"
".N/AT0931/2DEC/GVA/Y\n"
".I/KL0967/02APR/AMS/F\n"
".O/123/MARRIOTT/27MAY/084512L//FEDEXVAN45\n";
我在时刻使用的代码
std::vector<std::string> el; //VECTOR
split(el,message,boost::is_any_of("\n"));// the string above is split line for line into vector el
for(int i = 0; i < el.size(); i++)
{
if(el[i].substr(0,3) == ".N/")
{
cout << "------- Validating .N/ ---------" << endl;
str = el[i].substr(3);
split(st,str,boost::is_any_of("/"));
}
}
cout << str;
// the regular expression process starts here
boost::regex const string_matcher("\\d");
if(boost::regex_match(st[0],string_matcher))
{
//output
}
else
{
//output
}