Найти совпадающий вход и вернуть совпадающий вход, а также непревзойденный вход - PullRequest
0 голосов
/ 03 ноября 2019

Я перебираю ввод с клавиатуры, чтобы найти соответствие, например: int A = 89;. Затем верните входные данные в виде токенов, таких как: int, A, =, 89, ;.

Я уже пробовал проходить через вход и использовать regex_match для проверки токенов.

if (ch == ' ') {
        while (ch == ' ') {
            cin.get(ch);
        }
    }

    while (ch != ' ') {
        token += ch;
        cin.get(ch);
    }

    if (regex_match(token, regex("= | ; | int | float | A | B | C | D | E | [0-9]+ | [0-9]+\.[0-9]+"))){
        return token;
    }
    else {
        return token + ": Error: Unrecognizable token";
    }

1 Ответ

0 голосов
/ 03 ноября 2019

Просто удалите пробелы в строке регулярного выражения, и это должно работать:

if (regex_match(token, regex("=|;|int|float|A|B|C|D|E|[0-9]+|[0-9]+\.[0-9]+"))) {
    return token;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...