正規表示式匹配 c c 非注釋部分

2022-04-07 02:37:32 字數 742 閱讀 9525

最近在寫乙個c++的parser,裡面有乙個功能是要解析出所有有效的標頭檔案。如有檔案片段如下:

#include

#include

#include

#include

#include

#include

/* #include */

/*#include */

/* #include */

/*#include */

#include

/* #include */

/* #include

*/

/*

#include

*/

/*

#include

*/

// #include

// #include

// #include

需要從中檢索出qobject,qstringlist,qvariant,qmap,qvariantmap,qvariantlist,test這幾個有效的標頭檔案(去除注釋掉的)。

要完成這樣的檢索我們有很多方法,正規表示式是一種比相對比較便捷的方法。在這裡要匹配的標頭檔案要去除注釋掉的部分,實質上也就是把前面是/*或者//的情況過濾掉。對應在正規表示式中我們可以使用負前後查詢(負零寬度斷言)來實現。表示式如下:

(?]*(?!\s*\*/\s*)

正規表示式 非貪婪匹配

先來看個例子 final static string text 999www.chinoukin.com 888 final static string regex public static void main string args 預想輸出結果 999 b 888 b 實際輸出結果 999 b...

匹配注釋的正則標的是 正規表示式

正規表示式語言由兩種基本字元型別組成 原義 正常 文字字元和元字元。元字元使正規表示式具有處理能力。所謂元字元就是指那些在正規表示式中具有特殊意義的專用字元,可以用來規定其前導字元 即位於元字元前面的字元 在目標物件中的出現模式。常用的元字元 說明 匹配除換行符以外的任意字元 w 匹配字母或數字或下...

部分正規表示式

d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d d 0 0 非正浮點數 負浮點數 ...