qregexp是qt的正規表示式類.
qt中有兩個不同類的正規表示式.
第一類為元字元.它表示乙個或多個常量表示式.
令一類為 轉義字元,它代表乙個特殊字元.
一.元字元
. 匹配任意單個字元.例如, 1.3 可能是1. 後面跟任意字元,再跟3
^ 匹配字串首. 例如, ^12可能是123,但不能是312
$ 配字串尾. 例如, 12$可以是312, 當不能是 123
匹配括號內輸入的任意字元.[123]可以為1, 2 或3
* 匹配任意數量的前導字元. 例如, 1*2可以為任意數量個1(甚至沒有), 後面跟乙個2
+ 匹配至少乙個前導字元. 例如, 1+2必須為乙個或多個1, 後跟乙個2
? 匹配乙個前導字元或為空. 例如 1?2可以為2或這12
二.統配模式
通過 qregexp::setpatternsyntax(qregexp::wildcard);可以將元字元設定為統配模式.在統配模式下,只有3個元字 符可以使用.他們的功能沒有變化.
? 匹配任意單個字元, 例如, 1?2可以為1,後面跟任意單個字元, 再跟2
* 匹配任意乙個字串行. 例如, 1*2, 可以為1, 後面跟任意數量的字元, 再跟乙個2
匹配乙個定義的字元集合. 例如, [a-za-z\.]可以匹配 a到z之間任意乙個字元和. [^a]匹配出小寫a以外的字元.
三.轉義序列
\. 匹配」.」
\^ 匹配」^」
\$ 匹配」$」
\[ 匹配"["
\] 匹配」]」
\* 匹配」*」
\+ 匹配」+」
\? 匹配」?」
\b 匹配響鈴字元,使計算機發出嘟的一聲.
\t 製表符號
\n 換行符號
\r 回車符鉿
\s 任意空格
\xnn 匹配16進製為nn的字元
\0nn 匹配8進製的nn字元
這些表示式均以\開始, 與c++的轉義字元相同,所以為了定義qregexp中的乙個轉義序列,
需要在前面新增兩個\\
你可以使用qregexp::exactmatch來判斷乙個字串是否符合乙個pattern。
void testregexmatch()
你可以利用利用正規表示式從乙個字串裡提取特定的字段或資料。例如,你可以用以下**從」a=100″裡提取」a」和」100″。
void testregexcapture()
}你可以把字串中匹配的字串替換成」一般字串」
qstring s = 」a=100″;
s.replace(qregexp(「(.*)=」), 」b=」);
qdebug() << s; // b=100
或是把字串中匹配的字串替換」提取的字串」
qstring s = 」a=100″;
s.replace(qregexp(「(.*)=(.*)」), 」\\1\\2=\\2″); // \1 is rx.cap(1), \2 is rx.cap(2)
qdebug() << s; // a100=100
沒有python的」"」或是c#的@。標準的正規表示式因為出現一些特殊字元,在c/c++**裡使用時,必須進行轉換。例如:」(\s+)\s*=\s*(\s*)」必須轉換成」(\\s+)\\s*=\\s*(\\s*)」
qt的sdk裡包含乙個很幫的gui工具,可以方便我們進行這類轉換並測試你的表示式。在linux下,它的路徑是/usr/local/trolltech/qt-4.5.3/examples/tools/regexp/regexp
你可以使用qregexp::exactmatch來判斷乙個字串是否符合乙個pattern。
void testregexmatch()
你可以利用利用正規表示式從乙個字串裡提取特定的字段或資料。例如,你可以用以下**從」a=100″裡提取」a」和」100″。
void testregexcapture()
}你可以把字串中匹配的字串替換成」一般字串」
qstring s = 」a=100″;
s.replace(qregexp(「(.*)=」), 」b=」);
qdebug() << s; // b=100
或是把字串中匹配的字串替換」提取的字串」
qstring s = 」a=100″;
s.replace(qregexp(「(.*)=(.*)」), 」\\1\\2=\\2″); // \1 is rx.cap(1), \2 is rx.cap(2)
qdebug() << s; // a100=100
沒有python的」"」或是c#的@。標準的正規表示式因為出現一些特殊字元,在c/c++**裡使用時,必須進行轉換。例如:」(\s+)\s*=\s*(\s*)」必須轉換成」(\\s+)\\s*=\\s*(\\s*)」
qt的sdk裡包含乙個很幫的gui工具,可以方便我們進行這類轉換並測試你的表示式。在linux下,它的路徑是/usr/local/trolltech/qt-4.5.3/examples/tools/regexp/regexp
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...
Qt之正規表示式
在用寫程式的時候,往往會用到正規表示式,不僅僅是web開發,mfc gtk qt開發的圖形介面也是如此,只要了解其原理,語法也都大相徑庭!0 lineedit非大寫輸入時,顯示 no mathch qregexp passwdreg a z if passwdreg.exactmatch pwded...