Qt 正規表示式語法

2022-03-07 21:10:36 字數 1712 閱讀 5882

正規表示式是驗證輸入、從輸入中提取資料以及對輸入進行搜尋和替換的強大工具,所謂正規表示式,regexp是一種利用模式匹配語言來描述字串組成限制條件的方式;

qt 提供了乙個qregexp類,它實現了perl風格的擴充套件正規表示式語言的大部分功能:

正規表示式是乙個字元的序列;

1):特殊字元

2)量詞:

3)字符集  ---- 在匹配表示式指定位置允許出現的字元集合,其中還預定義了幾個字元集合:

字符集也可以使用方括號指定:

4)分組 和捕獲字元 ---() 可以用來把字元劃分成組的特殊字元,字元組可以是向後引用的。也就是說,如果存在乙個匹配,那麼分組了的值可以通過各種方式捕獲和訪問;

一般乙個正規表示式最多可以引用9個分組,即\1到\9這樣的修飾;

此外還有乙個qregexp成員函式cap(int nth),它返回第n個分組(基於qstring的形式返回).

5)錨點字元 --- 確定嘗試進行匹配操作的邊界

例子:c*at    c出現零次或者多次,at緊跟其後;例如 at,cat,ccat等;

c?at    c出現零次或者1次,之後緊跟著at:僅at或者 at;

c.t     c之後緊跟任意字元,其後面又緊跟t的字元匹配,例如cat,cot等等;

c.*t    字元c後邊緊跟0個或者多個任意字元,然後緊跟t,例如 ct,caaatt, casdasdt等等

ca+t    '+'意味著前面的字元可以出現一次或者多次,因此符合條件的有cat,caat,caaat等等

c\.\*t  反斜線在特殊字元之前將會"使其轉義",因此,只有字串"c.*t"才能匹配;;

c\\\.t  只和字串"\c.t"匹配;

c[0-9a-c]+z  c 與 z 之間可以出現中的任意字元,+ 表示出現1+ 最少1次

the (cat | dog) ate (fish|mouse) (輪流交替)匹配的結果是 四次;; 不斷變換 the cat ate fish ;

the dog ate mouse; --------

\w+        字母數字(單詞字元)的序列,與【a-za-z0-9】+等價

\w         非單詞字元(標點符號/空白符號等)

\s      正好5個空白字元(製表符,空白符或者換行符)

^\s+       匹配字串開頭處的乙個或者多個空白字元

\s+$       匹配字串結尾處的乙個或者多個空白字元

^help      如果help出現在字串的開頭,就匹配它;

[^help]    與字串中任意地方(和元字元^的意思不一樣)的除單詞help中任一字母之外的任何單個字元相匹配

\s    至少1個、至多5個非空白字元(可列印的字元)

\d         乙個數字[0-9](\d是乙個非數字,也就是[^-0-9])

\d-\d7位**號碼: 3位-四位

\bm\w+ \b代表單詞邊界:mbuffer匹配而streambuffer不匹配;

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 一位整...