Как получить имя функции из строки определения функции с помощью регулярных выражений в c или c ++? - PullRequest
0 голосов
/ 09 декабря 2018

Я хочу найти строку из заданного текста.Мое регулярное выражение не работает.Я не уверен, что я сделал ошибку.Может ли кто-нибудь помочь мне, пожалуйста.

Я ожидаю вывод как: myFunction

#include <iostream>
#include <string>
#include <regex>
#include <iterator>
using namespace std;

int main()
{

// Target sequence
std::string s = "function myFunction(p1, p2) { return p1 * p2; }";

// An object of regex for pattern to be searched
regex r("/^function\\s+([\\w\\$]+)\\s*\\(/");

// flag type for determining the matching behavior
// here it is for matches on 'string' objects
smatch m;

// regex_search() for searching the regex pattern
// 'r' in the string 's'. 'm' is flag for determining
// matching behavior.
regex_search(s, m, r);

// for each loop
for (auto x : m)
    cout << x << " ";
}

1 Ответ

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

Строка, которую вы используете для regex, неверна.Вам не нужны два / символа в начале и в конце.Использование:

regex r("^function\\s+([\\w\\$]+)\\s*\\(");
//       ^ No /                         ^ No /

См. Это работает на https://ideone.com/bLavL0.

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