C ++ STRINGS正则表达式

时间:2012-02-13 11:08:05

标签: c++ regex string

我正在尝试检索前三个字母上确定的字符串的整行,然后发送通过正则表达式检索的行,我必须检查字符串。所以这个小程序的流程如下

**“。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
}

0 个答案:

没有答案