Есть текст:
static void OutClass::OurMethod(int a)
static void OurFunction(int b)
Надо получить:
OutClass::OurMethod(int a)
OurFunction(int b)
То есть, надо оставить имя C++ метода или функции и все что правее, а возвращаемый тип пропустить.
Я использую регулярку https://regex101.com/r/oax6bm/1:
\w+(::)?.*\(.*\)
И она не работает. Она матчит весь текст.
Проблема в кванторе вопроса ? для группы (::). Если его убрать, то для строки с OutMethod матчинг сработает правильно. Но двойное двоеточие может либо быть, либо не быть, поэтому я использую квантор ?. И с ним все ломается.
Как исправить?