預定義類比對常見的字元類
1常見的預定義類字元(除了回車符和換行符之外的所有字元)
\d 數字字元
\D 非數字字元
\s 空白符
\S 非空白符
\w 單詞字元(如數字、字母和下劃線)
\W 非單詞字元
2 正規表達式還提供了幾個常用的邊界比對字元
^ 以前開始
$ 以末開始
\b 單詞邊界
\B 非單詞邊界
3 非貪婪模式
讓正規表達式盡可能少比對,一旦比對成功就不再比對
4 貪婪模式
讓正規表達式盡可能多比對,比對完所有能比對的
5 把非貪婪模式改為貪婪模式在量詞後面加上問号,如:{3,8}?
6 使用( )進行分組,使量詞作用于分組,如:(my){3}括号裡的單詞重複三遍
7 使用 | 選擇她還是他,或者的意思。如(m|y)選擇m或者y
8 反向引用,如:2017-06-28=>06/28/2017
寫成’2017-06-28’.replace(/(\d{4})-(\d{2})-(\d{2})/g, ’$2$3$1’)
9 忽略分組
不希望捕獲某些分組,在分組内加上問号,如:(?:my).(ok)
10 常見的量詞
?出現零次或一次(最多出現一次)
+ 出現一次或多次(最少出現一次)
* 出現零次或多次(任意次)
{n,}至少出現一次
{n}出現n次
{n,m}出現n到m次
11 正規表達式從文本頭部向尾部開始解析,文本尾部方向稱為“前”
12 前瞻就是正規表達式比對到規則的時候,向前檢查是否符合斷言
13 後瞻則方向相反,JavaScript不支援後瞻
14 符合和不符合特定斷言稱為肯定或正向比對和負向或否向比對
正向前瞻exp(?=assert)
負向前瞻exp(?!=assert)
正向後顧exp(?<=assert)
負向後顧exp(?<!assert)
本文轉自 拉考的考拉 51CTO部落格,原文連結:http://blog.51cto.com/lakaodekaola/1943304