Как я могу интерпретировать строку 'regex e'? - PullRequest
0 голосов
/ 12 декабря 2018

Моя функция balanceFile возвращает true, если мои скобки в файле сбалансированы.Например:

{()} // сбалансированный

{(\ n)} // сбалансированный

{(} // несбалансированный

Я использую оператор switch, предоставленный моим профессором CS, показанным ниже:

case 8: {
        istringstream iss("{(\n)}");
        assert(balanceFile(iss));
        string str = strCout.str();
        regex e("pair *matching *\\( *and *\\).*\\npair*matching *\\{ *and *\\}");
        assert(regex_search(str, e));}

Я получаю следующую ошибку:

Assertion failed: regex_search(str,e), file c:\...'

Что является причиной ошибки подтверждения

1 Ответ

0 голосов
/ 12 декабря 2018

Ошибка подтверждения вызвана тем, что вещь в assert() ложна.Вот что делает assert().Буквально, весь смысл в том, чтобы вызвать ошибку утверждения, если в скобках есть ложь.

Причина regex_search(str, e) ложна в том, что регулярное выражение e не соответствует ни одной частистрока str.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...