在qlineedit中常常需要受到很多約束,這裡就可以使用正規表示式
符號功能
^一行的開頭
$一行的結尾
[a-z]
輸入a-z的單個小寫字母
[a-za-z]
輸入大寫或小寫的單個字母
[abcd]
只能輸入a、b、c、d其中乙個
\d輸入[0-9]任意數字
\d輸入非數字的字元
\w輸入任意單字元
\w輸入任意非單字元
[0-9]
和\d的效果一致
a|b表示a或b
a?表示a可輸入1次或0次
a*表示輸入出現0次或者多次
a+表示可以輸入1次或者多次
a輸入5個a
a輸入5個至16個a
a輸入5個以上的a
[\u4e00-\u9fa5]
匹配中文(中字元也能輸入)
注意:在**中除了中文的[\u4e00-\u9fa5]這裡面的\不用雙寫,其他的\都要寫成\\這樣。
//需要標頭檔案
#include
//正則表達
//建立乙個qlineedit物件 *iplineedit;
qlineedit *iplineedit =
newqlineedit
(this);
//寫乙個192.168.0.0 到 192.168.255.255的正規表示式
qstring ip =
"192\\.168((\\.(2[0-4]\\d|25[0-5]|1\\d|[1-9]?\\d)))"
;//建立qregexp 變數rx,把上面寫好的正規表示式匯入
qregexp rx
(ip)
;//建立qregexpvalidator 並構造
qregexpvalidator *preg =
newqregexpvalidator
(rx,
this);
//將已經建立好的lineedit物件設定正規表示式
iplineedit-
>
setvalidator
(preg)
;
這裡我們解讀一下上面的正規表示式
先看口號裡面的表示式 ((\.(2[0-4]\d|25[0-5]|1\d|[1-9]?\d)))我們以 | 為界限分開
因為這些使用|符號連線(表示「或」的關係),所以範圍為0-255,所以可以化簡成[0-255]
然後我們再往外面一層看(\.[0-255]),這個意思就是重複「 . 0到255」兩次
注意:這裡\.表示輸入乙個小數點
最後我們再看192\.168(\.[0-255])的意思就是前面的7位我們必須寫成192.168後面接上兩次.0-255
如果有你使用的是中文,並且要過濾掉中文字元。那麼要做這些處理
//建立乙個
qlineedit *my_lineedit =
new qlineedit;
//表示匹配乙個或者多個中文字元
qregexp rx
("^[\u4e00-\u9fa5]+$");
//匯入正則
qvalidator *preg =
newqregexpvalidator
(regx,
this);
my_lineedit-
>
setvalidator
(preg )
;//連線槽函式
connect
(my_lineedit,
signal
(textchanged
(qstring)),
this
,slot
(slotnamefilter
(qstring)))
;//searchcondwidget我的類
void searchcondwidget::
slotnamefilter
(qstring s)
qt之正規表示式
qregexp是qt的正規表示式類.qt中有兩個不同類的正規表示式.第一類為元字元.它表示乙個或多個常量表示式.令一類為 轉義字元,它代表乙個特殊字元.一.元字元 匹配任意單個字元.例如,1.3 可能是1.後面跟任意字元,再跟3 匹配字串首.例如,12可能是123,但不能是312 配字串尾.例如,1...
qt之正規表示式
qregexp是qt的正規表示式類.qt中有兩個不同類的正規表示式.第一類為元字元.它表示乙個或多個常量表示式.令一類為 轉義字元,它代表乙個特殊字元.一.元字元 匹配任意單個字元.例如,1.3 可能是1.後面跟任意字元,再跟3 匹配字串首.例如,12可能是123,但不能是312 配字串尾.例如,1...
Qt之正規表示式
qt裡對大名鼎鼎的正規表示式有很好的支援,使用qregexp類,你可以非常快的完成對文字的驗證 資料提取 替換。qt的sdk包裡還提供了regexp的gui小工具,方便你對正規表示式的驗證。本文在qt4.5.3下驗證通過。你可以使用qregexp exactmatch來判斷乙個字串是否符合乙個pat...