Использование регулярных выражений в C ++ / CLI - PullRequest
3 голосов
/ 03 февраля 2012
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.

1 Ответ

4 голосов
/ 03 февраля 2012

Это потому, что вызов возвращает объект Match, а не NULL. Вам необходимо проверить свойство Success:

if (Regex::Match(tempHeader, matchStr, RegexOptions::IgnoreCase)->Success)
{
    index = i;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...