**【
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
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 一位整...
Qt正規表示式
20201016 舉例 字符集 aeiou 表示匹配所有的大寫母音字母 字符集 aeiou 表示匹配所有的非母音字母,即子音字母 連續字符集 a z 表示匹配所有的小寫英文本母 正規表示式的量詞 quantifiers 量詞含義 量詞含義e?匹配0次或1次 e n,至少匹配n次e 匹配1次或多次 e...