我必须从各种C++函数调用中提取函数名称。以下是一些函数调用示例和高亮显示的提取函数名称。正则表达式从C++函数调用中提取函数
std::basic_fstream<char,std::char_traits<char> >::~basic_fstream<char,std::char_traits<char> >
〜basic_fstream的CSocket::Send
发送CMap<unsigned int,unsigned int &,tagLAUNCHOBJECT,tagLAUNCHOBJECT &>::RemoveAll Cerner::Foundations::String::Rep::~Rep
〜众议员CCMessage::~CCMessage
〜CCMessagestd::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,u
_TreeLib::DispatcherCache::~DispatcherCache
〜DispatcherCacheCPrefDataObjectLoader<CPrefManagerKey,CPrefManagerValue,CGetPrefManager,PrefManagerKeyFunctor>::Get
获取以下正则表达式适用于大多数的功能
/((?:[^:]*))$';/
此正则表达式从最后得到的字符串:/+?(?=<)';/
这一个删除以<
但是对于std::basic_fstream<char,std::char_traits<char> >::~basic_fstream<char,std::char_traits<char> >
我得到的输出是char_traits
,因为这个字符串在最后':'后面,但结果应该是是~basic_fstream
。有没有一种方法可以将这两个正则表达式组合起来并忽略在<>
之内的所有内容?
选择在线工具以帮助您达到目的地: https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=online%20regex%20builder –
@KenWite看起来像一个要求从源代码解析出函数名的人。这里我的问题更加复杂。我需要从不同的函数调用中解析函数名称。 –