Qt中使用正規表示式返回匹配的所有結果集

2021-09-06 08:58:27 字數 1058 閱讀 1914

python的正則中有findall函式返回乙個所有匹配的結果list.

今天在使用qt的時候發現似乎沒有類似的方法.進而自己寫了乙個, **如下

/**
*

@brief

獲取所有的匹配結果

*

@param

text

要匹配的文字

**

@param

regexp

正規表示式串

*

@return

匹配的結果集

*/
qset

uploadbase::getallmatchresults(const

qstringtext,const

qstringregexp)

測試:
假如在如下的test.h 要獲取所有include的檔名
#include #include #include #include #include #include #include #include
可以這麼使用

qset

libreference;

qfilefile(filepath);//filepath是test.h的路徑
if(!file.open(qfile::readonly))
qstringcode=file.readall();
libreference=getallmatchresults(code,"\\w+\\.h");
libreference中的結果為 metro.h, freesiximu.h, 

fimu_adxl345.h,

fimu_itg3200.h,

wire.h,

liquidcrystal_i2c.h,

irremote.h

Qt使用正規表示式

qt中使用正規表示式的類是qregexp 標頭檔案 先定義正則規則 正則規則跟其他的語言一樣樣 qregexp rx a za z rx.indexin qstring fwlfwiefwf wefwefwef 返回的是匹配對的第乙個下標位置 如果沒有匹配的話返回的是 1 所以只需要判斷返回值是不是...

qregexp括號匹配 QT正規表示式 正則式

示例 qregexp regusername 0 9,a z,a z qregexp regpassword 0 9 ui login user setvalidator new qregexpvalidator regusername,this ui login pass setvalidator...

正規表示式 匹配

字串 void abtr quint32 ab 表示乙個正規表示式 template class bidirectionaliterator class allocator std allocator sub match bidirectionaliterator class match resul...