Regex для взятия имени класса из строки

У меня есть строка, как эта:

    parser = new ASTParser(in, encoding);

После того, как я токенизирую эти строки, я получаю:

    ASTParser(in, encoding);

Теперь, как я могу выполнить регулярное выражение, чтобы получить только ASTParser?

Я пытался сделать это с помощью std::erase:

    str.erase(std::remove_if(str.begin(), str.end(), isLetter), str.end());

но проблема в том, что я получаю также параметры (ASTParserinencoding) и я не хочу этого.

Кроме того, я был бы очень признателен за решение boost::regex,

0

Решение

Нет необходимости в регулярном выражении — все, что вам нужно сделать, это сканировать до первого не письма. Вот один из способов (обратите внимание, что мои навыки работы с std :: string немного ржавые):

str.substr(0, std::distance(str.begin(), std::find_if_not(str.begin(), str.end(), isLetter));

В качестве альтернативы, вы можете использовать регулярные выражения, как это:

([A-Za-z_][A-Za-z0-9_]*)
2

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector