我正在使用带有头文件的c ++,该头文件非常大,并且想要搜索具有特定返回类型的函数,例如int。问题在于返回类型前面有空白区域,如下所示。
Set<Animal*> _animals;
int _getMonkeyCount(Zoo* zoo);
bool _addUnicorn(Animal* unicorn, int age = EXTINCT );
string _toString(Zoo* z);
void _addMonkeyz(Animal* monkey, List<string> fleaNames);
我想要一个匹配其中一个返回类型的正则表达式。例如bool,但我不想匹配它前面的空间。
答案 0 :(得分:3)
您可能需要以下内容:
/^\s\+\zsbool
这里的关键是\zs
,它定义了匹配的开始。还有\ze
来定义匹配的结尾,但你不需要这里。
答案 1 :(得分:0)
怎么样
^\s\+int
^\s\+bool
等
答案 2 :(得分:0)
'^ *int '
运行时删除引号。当然,这也突出了一些额外的角色......
答案 3 :(得分:0)
不确定这是否正是您正在寻找的,但这可能会帮助其他人(匹配函数定义,可能会有所改进)。
这个Perl正则表达式支持:
/((?:static\s+)?(?:const\s+)?(?:\w+\s+)(?:\*\s+)?(?:const(:?\s*))?)([\w|~]+)(\(.*\))(.*)\{/
的问题: