人類的常規表達方式在文字查詢和處理方面是薄弱的,特別是一些複雜的文字處理。這時候有人發明了正規表示式這一非常規表達方式進行複雜的文字處理。如果你不是很懂正則,那麼你一定不是乙個合格的程式設計師,甚至不如乙個很會處理文件辦公室文員(當然了,現在很少有人會在乎這一點。但我們自己還是要有點追求,書到用時方恨少,正則需要用的地方還是非常多的,甚至常規的word和excel都有該功能)。
下面介紹一下正則的一些常用的元字元和用法:
1、...|... 指明兩項之間的乙個選擇(或)
2、 . 匹配除換行符 \n之外的任何單字元。
3、^... 開頭標記符(start of string)
4、 ...$ 結尾標記符(end of string)
5、[...] 方括號(自定義的字元組,裡面是需要匹配的字元,只能匹配其中的乙個字元)(注:[^aeiou] 匹配除了aeiou這幾個字母以外的任意乙個字元,^在中代表「非」的意思)
6、... 花括號(裡面是匹配字元的個數).such as, :exactly 3; :3 or more; :3 or 4 or 5
... 前面的字元或表示式出現n次;
... 前面的字元或表示式出現n次或更多次;
... 前面的字元或表示式出現n到m次(m 大於 n)
7、(...) 圓括號(標記乙個子表示式的開始和結束位置)
8、...* (0 or more) 前面的字元或表示式出現0次或多次
9、...+ (1 or more) 前面的字元或表示式出現1次或多次
10、...? (0 or 1) 前面的字元或表示式出現0次或1次
11、 \ 轉義字元 (escape character),需要匹配正則中元字元時就需要使用轉義字元進行轉義宣告
12、\w 匹配任何單詞字元(字母、數字、下劃線)。與「[a-za-z0-9_]」等效。(.net下甚至可以匹配漢字)
\w 與任何非單詞字元匹配(與\\w相反)。與「[^a-za-z0-9_]」等效。
13、\s 匹配任何空白字元,包括空格、製表符、換頁符等。與 [ \f\n\r\t\v] 等效。
\s 匹配任何非空白字元。與 [^\f\n\r\t\v] 等效。(與\s相反)
14、\d 匹配數字字元。等效於 [0-9]。
\d 非數字字元匹配。等效於 [^0-9]。(與\d相反)
15、\b 匹配單詞的開始或結束。也就是單詞的分界處。(它只匹配乙個位置,不匹配任何字元)
\b 匹配不是單詞開頭或結束的位置。(與\b相反)
16、((?i)...) 表示後面的正則匹配是忽略大小寫的
17、((?s)...)表示改變後面正則中的.的含義,使它與每乙個字元匹配(包括換行符\n)
18、正則預設是貪婪匹配,就是要盡可能去匹配最多的字元數。可以通過在量詞(+、?、*、)後面直接加上乙個?,就是非貪婪模式(匹配最少的字元數)。
正規表示式(基礎篇)
i 忽略大小寫 g 全文查詢出現的所有匹配字元 m 多行查詢 gi 全文查詢 忽略大小寫 ig 全文查詢 忽略大小寫 是另乙個元字元,匹配除了換行符以外的任意字元 同樣是元字元,不過它代表的不是字元,也不是位置,而是數量 它指定 前邊的內容可以連續重複使用任意次以使整個表示式得到匹配 是和 類似的元...
QT 正規表示式 基礎篇
引用表示式 說明 r,n 代表回車和換行符 t製表符 代表 本身 匹配 符號本身 匹配 符號本身 元字元說明 匹配除了換行符以外的任意字元 w匹配字母 數字 下劃線 漢字 s匹配任意的空白符 b單詞的開始或結尾 匹配字串的開始 匹配字串的結束 如 ba w b 匹配以字母a開頭的單詞 先是某個單詞開...
正規表示式篇
利用正規表示式來判斷輸入的字串格式是否正確 string regex 1 d 2 0 4 d 25 0 5 1 9 d 1 9 1 d 2 0 4 d 25 0 5 1 9 d d 1 d 2 0 4 d 25 0 5 1 9 d d 1 d 2 0 4 d 25 0 5 1 9 d d 判斷ip ...