c ++ регулярное выражение для получения сигнатуры функции

Я пытаюсь найти сигнатуру функции с помощью regex_search в C ++. Вот что я использую

std::smatch m;

std::regex e("?(unsigned|signed|const|inline)?\\s?(bool|char|int|float|double|void|wchar_t|string)\\s?[*]?(\\w.*)[(](.*)[)]\\s?{?$");

if(regex_search(xmlFileLine, m, e)) {

cout << xmlFileLine << endl;

}

В приведенном выше коде ‘xmlFileLine’ является строкой из getline, читающей каждую строку входного файла. Например, строка, которую я пытаюсь найти,
«int Testo :: Fact (int n) {«

Когда я выполнил вышеупомянутое регулярное выражение в try и у меня были все флаги regex_error, такие как paren, сложность и так далее … в ловушке, я узнал, что это был брошенный regex_paren. Я не понимаю, как решить это.

Пожалуйста, помогите мне в этом.

1

Решение

Хорошее место для проверки регулярных выражений в
regex101.com
Разместив там свое выражение, он жалуется на первое? с
«Предыдущий токен не поддается количественной оценке».
Как только я уберу это, оно будет соответствовать вашей тестовой строке.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]