String^ matchStr = "eu";
String^ tempHeader;

for (int i = 0; i < header.size(); i++)
{
    tempHeader = gcnew String(header[i].c_str());
    if (Regex::Match(tempHeader, matchStr, RegexOptions::IgnoreCase))
    {
        index = i;
    }
}


上面是我要用于正则表达式的代码,但是无论如何,它都会进入“ IF”循环,并设置index = i。

最佳答案

这是因为该调用返回一个Match对象,而不是NULL。您需要检查Success属性:

if (Regex::Match(tempHeader, matchStr, RegexOptions::IgnoreCase)->Success)
{
    index = i;
}

07-26 02:23