單個字符與數字
. 查找單個字符,除換行符和行結束符
[a-z0-9] 匹配方括號中的任意字符
[^a-z0-9]匹配不在方括號中的任意字符
\d 匹配數字
\D 匹配非數字
\w 匹配字母
\W 匹配非字母javascript
空白字符
\0 匹配null字符
\f 匹配換頁符
\n 匹配換行符
\r 匹配回車符
\s 匹配空白字符
\S 匹配非空白字符
\t 匹配製表符java
定位符
^ 行首匹配
$ 行尾匹配
\A 只匹配字符串的開始處
\b 匹配單詞邊界,此在[]內無效
\B 匹配非單詞邊界
\G 匹配當前搜索的開始位置
\Z 匹配字符串結束處或行尾
\z 只匹配字符串結束處正則表達式
限定符
x? 匹配0個或1個x
x* 匹配0個或任意多個x
x+ 匹配至少1個x
x{m,n} 匹配最少m個,最多n個x數組
分組
(?:x) 匹配x但不記錄匹配結果
x(?=y) 當x後接y時匹配x
x(?!y) 當x後不是y時匹配x函數
模式修飾符
g全局模式,應用於全部字符串;
i執行對大小寫不敏感的匹配;
m多行匹配模式測試
exec
功能:在字符串中執行匹配檢索,返回結果數組
參數:要應用模式匹配的字符串
特性:使用全局標記g 持續查找全部匹配項並返回
不使用全局標記g 始終返回第一個匹配項信息
執行過程:
①檢索字符串參數,獲取正則表達式匹配文本
②找到匹配文本則返回一個數組:
第0個元素——與整個模式匹配的字符串
其它元素——與捕獲組匹配的字符串
③不然返回null
派生屬性:
①index 匹配項在字符串中的位置
②input 應用正則表達式的字符串
③length 返回數組元素的個數code
test
功能:在字符串中測試模式匹配,返回true或falseip
注意:貪婪匹配
須要特別指出的是,正則匹配默認是貪婪匹配,也就是匹配儘量多的字符。舉例以下,匹配出數字後面的0
;字符串
var re = /^(\d+)(0*)$/; re.exec('102300'); // ['102300', '102300', '']
因爲\d+
採用貪婪匹配,直接把後面的0
所有匹配了,結果0*
只能匹配空字符串了。input
必須讓\d+
採用非貪婪匹配(也就是儘量少匹配),才能把後面的0
匹配出來,加個?
就能夠讓\d+
採用非貪婪匹配:
var re = /^(\d+?)(0*)$/; re.exec('102300'); // ['102300', '1023', '00']