引用表示式
說明\r, \n
代表回車和換行符
\t製表符
\\代表 "\" 本身
\^匹配 ^ 符號本身
\$匹配 $ 符號本身
元字元說明
.匹配除了換行符以外的任意字元
\w匹配字母、數字、下劃線、漢字
\s匹配任意的空白符
\b單詞的開始或結尾
\~匹配字串的開始
$匹配字串的結束
如:\ba\w*\b :匹配以字母a開頭的單詞——先是某個單詞開始處(\b),然後是字母a,然後是任意數量的字母或數字(\w*),最後是單詞結束處(\b)。
\b\w\b: 匹配剛好6個字元的單詞。
表示式說明
[ ]包含一系列字元
[^ ]
包含之外一系列字元
[ab5@]: 匹配 "a" 或 "b" 或 "5" 或 "@"
[^abc]: 包含abc之外的任意字元
[f-k]: f-k之間的任意字元
表示式說明
表示式重複n次,比如:"\w" 相當於 "\w\w";"a" 相當於 "aaaaa"
表示式至少重複m次,最多重複n次,比如:"ba"可以匹配 "ba"或"baa"或"baaa
表示式至少重複m次,比如:"\w\d"可以匹配 "a12","_456","m12344"...
?匹配表示式0次或者1次,相當於 ,比如:"a[cd]?"可以匹配 "a","ac","ad"
+表示式至少出現1次,相當於 ,比如:"a+b"可以匹配 "ab","aab","aaab"...
*表示式不出現或出現任意次,相當於 ,比如:"\^*b"可以匹配 "b","^^^b"...
qt 用qregexp 來封裝正規表示式。如: qregexp rx("^[0-9]+(\\.\\d+)?$");
例如我們又這個乙個有規則的字串:**:數量:商家編碼:屬性名:屬性值;屬性名:屬性值; **:數量:商家編碼:屬性名:屬性值;屬性名:屬性值;屬性名:屬性值; **:數量:商家編碼:屬性名:屬性值;
想要分成:
**:數量:商家編碼:屬性名:屬性值;屬性名:屬性值;
**:數量:商家編碼:屬性名:屬性值;屬性名:屬性值;屬性名:屬性值;
**:數量:商家編碼:屬性名:屬性值;
首先選擇合適的正規表示式:(\w*:)(\w*:\w*;)+, 然後:
qregexp rx(tr("(\\w*:)(\\w*:\\w*;)+"));
int pos(0);
while ((pos = rx.indexin(str, pos)) != -1)
strlist 就是想要的結果了
正規表示式 基礎篇
人類的常規表達方式在文字查詢和處理方面是薄弱的,特別是一些複雜的文字處理。這時候有人發明了正規表示式這一非常規表達方式進行複雜的文字處理。如果你不是很懂正則,那麼你一定不是乙個合格的程式設計師,甚至不如乙個很會處理文件辦公室文員 當然了,現在很少有人會在乎這一點。但我們自己還是要有點追求,書到用時方...
正規表示式(基礎篇)
i 忽略大小寫 g 全文查詢出現的所有匹配字元 m 多行查詢 gi 全文查詢 忽略大小寫 ig 全文查詢 忽略大小寫 是另乙個元字元,匹配除了換行符以外的任意字元 同樣是元字元,不過它代表的不是字元,也不是位置,而是數量 它指定 前邊的內容可以連續重複使用任意次以使整個表示式得到匹配 是和 類似的元...
Qt 正規表示式
qregexp是qt的正規表示式類.qt中有兩個不同類的正規表示式.第一類為元字元.它表示乙個或多個常量表示式.令一類為 轉義字元,它代表乙個特殊字元.一.元字元 匹配任意單個字元.例如,1.3 可能是1.後面跟任意字元,再跟3 匹配字串首.例如,12可能是123,但不能是312 配字串尾.例如,1...