Qt 正規表示式學習

2021-10-10 03:30:53 字數 2511 閱讀 5821

功能簡介

驗證測試字串是否定義的符合規範

搜尋強大精準的搜尋

查詢和替換

查詢指定字元替換為另一指定字元

字串分割

識別在**進行字串分割

表示式含義

\d匹配乙個數字

\d匹配乙個非數字

\s匹配乙個空白字元

\s匹配乙個非空白字元

\w匹配字母數字下劃線

\w匹配非上述

\n第n個反向引用,可替代第n個()裡查詢到的內容,表示形式為\1,\2

ref=/^(\d\d)(a-z)\1\2$/

string=09s09s 12ss12 12ssss

result=09s09s

explanation: \1等於第乙個括號匹配到的內容,\2表示第二個括號匹配到的內容,這裡可以直接利用前面的匹配結果進行匹配限制,私以為這就是為啥這稱為 反向引用 了吧,反過來用結果作為限制元素。

直接上**

(1) qt5中引入了新的qregularexpression類,實現了與perl相容的正規表示式,並在qregexp基礎上進行了很大改進,建議寫qt5使用qregularexpression代替;

(2) 這裡先寫qregexp類下的一些功能實現**

//--------簡單匹配

qregexp rx

("^\\d\\d? $");

rx.indexin

("5");

//結果為0

rx.indexin

("a1");

//結果為-1

//--------只匹配字尾不是ail的m

rx.setpattern

("m(?!ail)");

qstring str1=

"this is m,his mail"

;str1.

replace

(rx,

"mail");

//--------替換所有字尾不是ail的m 為mail

//--------統計搜尋到的結果字串數量

qstring str2=

"one eric another eirik, and an ericsson. how many eirik, eric?"

;qregexp rx2

("\\bei? ri[ck]\\b");

//匹配eiric, eirik, eric, erik等四個單詞

int pos=0;

int count=0;

while

(pos>=0)

}

//---------111----------

qregularexpression re

("pattern");

//只定義模式

//---------222---------

qregularexpression re2

("pattern");

re2.

setpattern

("another pattern"

);// 更改設定為其他模式

//---------333---------

qregularexpression re1

("pattern"

, qregularexpression: caseinsensitiveoption)

;//構造時設定一些附加搜尋屬性

//--------444---------

qregularexpression re3

("pattern");

re3.

setpatternoptions

(qregularexpression::multilineoption)

;// 後續設定其他搜尋屬性

常量

描述qregularexpression::multilineoption

^匹配字串的開始和新行的開始;$匹配任意行的結尾

qregularexpression::caseinsensetiveoption

匹配目標字串時不區分大小寫

…(1) 如果不僅想搜尋,還想獲取搜尋得到的結果,將搜尋pattern用()包起來,則後面利用captured(n)可以獲得;

(2)captured的捕獲從1開始遍歷。

直接上**

qregularexpression re

("^(\\d\\d)/(\\d\\d)/(\\d\\d\\d\\d)$");

qregularexpressionmatch match=re.

match

("08/12/1985");

if(match.

hasmatch()

)

Qt 正規表示式

qregexp是qt的正規表示式類.qt中有兩個不同類的正規表示式.第一類為元字元.它表示乙個或多個常量表示式.令一類為 轉義字元,它代表乙個特殊字元.一.元字元 匹配任意單個字元.例如,1.3 可能是1.後面跟任意字元,再跟3 匹配字串首.例如,12可能是123,但不能是312 配字串尾.例如,1...

QT 正規表示式

正規表示式 編寫程式的時候,注意雙層轉義字元解析,有兩次轉義字元解析 see also 上述網頁講述了正規表示式的規則,但實際使用時要注意每個 符號前面要 重複加乙個 見18行 int main int argc,char argv pos will be 9,14,18 and finally 2...

Qt 正規表示式

1.qregexp exp ab ab,abb qregexp exp d 一位數字 qregexp exp x zx z xyz之間的一位 不區分大小寫 qregexp exp 2 6 2 6之間的一位數字 qregexp exp 0 9 0 999 qregexp exp 0 9 0 9 一位整...