Цель поиска регулярных выражений состоит в том, чтобы определить все экземпляры класса шаблона из файлов заголовков C++. Экземпляры класса могут быть formarted, такие как:Как я могу получить несколько воспоминаний из регулярного выражения Perl?
CMyClass<int> myClassInstance;
CMyClass2<
int,
int
> myClass2Instacen;
Поиск осуществляется путем загрузки всего файла в строку:
open(FILE, $file);
$string = join('',<FILE>);
close(FILE);
И следующее регулярное выражение используется для определения экземпляров класса, даже если экземпляр класса охватывает более одной строки в строку:
$search_string = "\s*\w[^typename].*<(\s*\w\s*,?\n?)*)>\s*\w+.*";
$string =~ m/$search_string/;
проблема заключается в том, что поиск возвращает один хит только даже если несколько экземпляров класса существуют в файлах.
Можно ли получить все образы с помощью этого подхода из одной из переменных обратного преобразования регулярных выражений?
Прямая ссылка на раздел, на который ссылается: http://perldoc.perl.org/perlfaq6.html#What-good-is-%27\G%27-in-a-regular-expression%3f –