正規表示式是用乙個字串表示乙個特徵,來驗證另乙個字串是否滿足這一特徵的方法。
正規表示式主要用於檢驗規則匹配,查詢特定規則字串的位置,進行特定規則替換。
1. 匹配普通字元
匹配乙個特定的字元,如a,那麼正規表示式就寫為a。
2. 匹配轉義字元
一般轉義字元:
\r 回車,\n 換行,\t 製表符,\f 換頁符,\v 垂直製表符
正規表示式中出現的新轉義字元:
\^ 表示^符號,\$ 表示$符號,\. 表示.小數點
3. 匹配萬用字元
\d 任意乙個數字,0-9
\w 任意乙個數字,字母或下劃線,0-9,a-z,a-z,_
\s 空格,換行符,製表符,換頁符等空白字元
. 小數點匹配除換行符以外任何字元
還有\d,\w,\s。分別表示小寫字母代表意思的取反。如\d表示非數字
4. 中括號
中會包含一系列字元,只要能夠與中括號中的乙個匹配,即認為是匹配。
如[abc]匹配a或b或c。稱之為字符集。
在字符集中可以出現^,表示字符集取反。
5. 匹配出現次數
大括號:
{}中一般有數字,用於修飾前面的表示式的重複次數。
表示表示式重複n次。
表示表示式最少重複m次,最多重複n次。
表示表示式最少重複m次。
閉包運算:
? 表示式出現0次或者1次,相當於。
+ 表示式至少出現一次,相當於。
* 表示式不出現或者出現任意次,相當於。
6. 邊界運算子
^ 表示在字串開始處匹配。如^aa可以匹配aabb,但不能匹配bbaa。
$ 表示字串結束處匹配,如$aa可以匹配bbaa,但不能匹配aabb。
\b 邊界匹配,要求匹配區域一邊是\w,另一邊是\w。如er可以匹配never,不能匹配verb。
\b 非邊界匹配,要求匹配區域兩邊都是\w。如er可以匹配verb,不能匹配never。
舉乙個例子:
使用規則".\b."匹配「@#abc」,匹配到「#a」。
7. 或運算子
| 乙個豎線表示或運算子
8. 反向引用
反向引用主要用於匹配html標籤,如abc
等,可用規則<(\w+)>(.*?)進行匹配。其中\1指代第乙個括號中匹配規則匹配到的字串,以此類推\2表示第二個。通過這樣處理可以確保標籤的配對。
9. 貪婪匹配
貪婪與非貪婪匹配區別在於匹配次數後面是否有乙個問號。如(a)(\d+)與(a)(\d+?)對於a12345的匹配是不同的,前者是貪婪匹配,會匹配到a12345,而後者只會匹配到滿足條件,不會往下匹配,會匹配到a1,是非貪婪匹配。
以上只是列出了一些較常用的功能。有關於正規表示式,還可以參考微軟msdn提供的資料。
正規表示式 規則表示式
今天學習了正規表示式的一些基礎知識,1.概念 首先了解了一下正規表示式的含義 一些便於計算機識別的規則,能夠快速方便地對字元進行操作。而對於計算機而言,也有一寫規則表示式,它是能令計算機讀懂的 所以對我們來說看起來比較費勁 也相當於計算機的常識,一遇到就知道你要幹什麼。2.建立正則物件 var re...
正規表示式 規則
system.out.printf example 2f n 19.234 example 19.23 system.out.printf example 6.2f n 19.234 example 19.23 l xn匹配 ascii 碼值等於 n的字元 此處的 n 必須是兩位的十六進製制數。例如...
正規表示式規則
0 13 0 9 15 7 9 153 156 18 7 9 0 9 開頭匹配的字元,結尾匹配的字元才能識別為正規表示式,表示個數,表示字元選擇域,分隔優先順序,或 萬用字元匹配檔名中的單個字元,號碼,11位純數字,1開頭,其它不做限制 1 0 9 而 萬用字元匹配零個或多個字元。像 data?da...