1, 特殊符號之匹配開頭和結(jié)尾的 '^' 和 '$'
'^' -- 以某個字符串開始.
'$' --以某個字符串結(jié)尾.
例:(^the[a-z ]+) 匹配 ''the book is good 呵呵呵哈哈哈'' 中的''the book is good''
2, 特殊符號之匹配出現(xiàn)次數(shù)的 '' '+' 和 '?'
'' 表示某個字符可能出現(xiàn)0次或者多次 例如ab* 匹配a或者ab或者abb....
'+'意思和'*'類似 區(qū)別在于+匹配至少出現(xiàn)一次,不能不出現(xiàn),ab+ 則匹配不了a,但可以ab,abb....
'?' 則匹配某字符只出現(xiàn)一次,或者根本就不出現(xiàn)
某字符可以用[] 或者() 代替 那樣的話則表示一個字符串或一個表達式
3, 特殊符號之匹配出現(xiàn)一定次數(shù)的{n} {n,} {m,n}
{n} 表示前面的字符出現(xiàn)多少次, bo{2} 匹配book或者booook中的boo 不能匹配bok
{n,}表示前面的字符至少出現(xiàn)n次,* == {0,} + == {1,}
{m,n} m必須小余n,表示至少匹配m次,最多匹配n次 ? == {0,1}
4,特殊符號之貪婪的 ?
當該字符緊跟在任何一個其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面時犬耻,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配 所搜索的字符串,而默認的貪婪模式則盡可能多的匹配所搜索的字符串拐袜。例如浩姥,對于字符串 "oooo",'o+?' 將匹配單個 "o"祷嘶,而 'o+' 將匹配所有 'o'相味。
5, 特殊符號之通吃符 .
匹配除 "\n" 之外的任何單個字符。要匹配包括 '\n' 在內(nèi)的任何字符爷狈,請使用象 '[.\n]' 的模式。
6.正則轉(zhuǎn)意符號之
將下一個字符標記為一個特殊字符裳擎、或一個原義字符涎永、或一個 向后引用、或一個八進制轉(zhuǎn)義符。例如羡微,'n' 匹配字符 "n"谷饿。'\n' 匹配一個換行符。序列 '\' 匹配 "" 而 "(" 則匹配 "("妈倔。
以上是最基本的正則符號,, 這里算是入個門了,消化一下 在接著往下看吧..........
7,正則字符之關(guān)系符號 或--- | (x|y 匹配 x 或 y博投。)
例如用(z|f|s)ood 匹配 hehedazood houhouhoufood heiheihei sood中的 zood,food,sood
8,正則字符之集合[] ----[xyz]匹配集合中所包含的任意一個字符.
9.正則字符集合[^xyz] 匹配不包含xyz中的的任意一個字符。如:[^a-z]匹配不包含小寫字母的字符 [^0-9]不包含數(shù)字的字符.
10,正則字符\b表示空格 blank嘛 表示前面的字符的下一個字符是空格.
11.正則字符\B 則表示前面的字符的下一個字符 不 是空格.和上面的相反
12,正則字符 \d 表示數(shù)字等價于 [0-9]
13,字符 \D表示非數(shù)字等價于[^0-9]
14,字符 \w 匹配任何數(shù)字或字母包含帶下劃線.== [A-Za-z0-9_]
15,字符\W 和上面的相反,匹配任何非單詞字符盯蝴。等價于 '[^A-Za-z0-9_]'
16,字符 \count \1 表示后向引用毅哗,表示表達式中,從左往右數(shù)捧挺,第一個左括號對應的括號內(nèi)的內(nèi)容虑绵。以此類推,\2表示第二個闽烙,\0表示整個表達式 例如:\d{4}([-/])\d{2}\1\d{2} 匹配2016-08-29 其中\(zhòng)1表示([-/])這個括號在前面匹配的字符 前面匹配了- 后面就引用 - ,總之引用前面括號匹配的內(nèi)容,所以這個要配合括號使用
17.字符 \s 匹配任何空白字符翅睛,包括空格、制表符黑竞、換頁符等[ \f\n\r\t\v]
18.字符 \S 和上面的相反 等價于 [^ \f\n\r\t\v]
19.字符 \r 匹配一個回車符
20.字符 \n 匹配一個換行符
21, \xn 匹配 n捕发,其中 n 為十六進制轉(zhuǎn)義值。十六進制轉(zhuǎn)義值必須為確定的兩個數(shù)字長很魂。例如扎酷,'\x41' 匹配 "A"。'\x041' 則等價于 '\x04' & "1"莫换。正則表達式中可以使用 ASCII 編碼
22, (?=pattern) 和 (?!pattern)
正向肯定預查霞玄,在任何匹配pattern的字符串開始處匹配查找字符串。這是一個非獲取匹配拉岁,也就是說坷剧,該匹配不需要獲取供以后使用。例如喊暖,“Windows(?=95|98|NT|2000)
"能匹配"Windows2000
"中的"Windows
"惫企,但不能匹配"Windows3.1
"中的"Windows
"。預查不消耗字符陵叽,也就是說狞尔,在一個匹配發(fā)生后,在最后一次匹配之后立即開始下一次匹配的搜索巩掺,而不是從包含預查的字符之后開始偏序。
一些基本的注意事項:
a,為了逐字表達,你必須在"^.$()|*+?{"這些字符前加上轉(zhuǎn)移字符''胖替。請注意在方括號 中研儒,不需要轉(zhuǎn)義字符豫缨。
b,匹配純中文 [\u4E00-\u9FA5].
c, \ ( [ ^ \ ( \ ) ] + \ ) 匹配一串字符串中的小括號里面的內(nèi)容 中括號里面的內(nèi)容匹配1一次以上 其中不包括'(' 和' )' ( 此表達式復制的時候請把中間的空格都去掉 因簡述顯示問題不得不加空格)