我必須從各種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看起來像一個要求從源代碼解析出函數名的人。這裏我的問題更加複雜。我需要從不同的函數調用中解析函數名稱。 –