考虑这样的声明:
virtual Foo * const operator=(Bar& b);
或者
virtual Foo * const operator= (Bar& b); // note the optional number of whitespace after the function name
我想捕捉这Foo * const
部分。换句话说,我想匹配字符串开头、可选的虚拟|静态和左大括号之间的所有字符,除了最后一个单词和大括号前的可选空格量。
我想出了以下内容:
(?virtual|static)?\s*(?.*?)(?!\s*\()
但这不起作用。
编辑:更多示例:
输入捕捉 ----- -------- 无效 f(); 空白 静态 int Foo(); 整数 虚拟 const int * const const int * const 虚拟 Foo * operator+(Foo& b); 富 *