[ ]中括號:匹配其中的某乙個字元
[abcde]
匹配abcde其中任意乙個
[a-z]
匹配所有小寫字母
[0-9]
匹配任意乙個數字
( )小括號:分組:小括號裡面的內容作為整體進行匹配
小括號用於分組,豎線作為間隔代表「或者」的含義
/(ab) | (cd)/
匹配』ab』 或者 『cd』
/(a|b)cd/
匹配 『acd』 或者 『bcd』
| : 或,跟js中的(||)一樣
^:排除(除了) 類似js中的(!)
^ (不在中括號裡)匹配字串開頭
$ 匹配結尾
/^ $/ 這樣的正則代表完整匹配
必須記住
元字元含義 // 必須記住
等價表示式
\d數字
[0-9]
\d非數字
[^0-9]
\w數字,字母,下劃線
[a-z0-9_a-z]
\w非數字,字母,下劃線
[^a-z0-9_a-z]
\s空白字元
\s非空白字元
.全部字元
\b // 非必須記
匹配單詞邊界
\b匹配 非 單詞邊界
\0(數字0)
匹配 nul 字元
\n匹配 換行符
\f匹配 換頁符
\r匹配 回車符
\t匹配 製表符
\v匹配 垂直製表符
\u4e00 - \u9fa5
驗證中文 量詞
含義 //必須記住
等價表示式
匹配n次
最少n次,最多m次
最少n次,最多不限
+最少1次,最多不限
?可有可無,最多乙個
*可以有也可以沒有,個數不限
/(ab|cd)/
匹配字串」ab」 或者 「cd」 的2次,或者abcd。也就是說:abab cdcd abcd cdab這四組字元能成功匹配。
匹配大小寫不一樣的字母怎麼辦?我們可以使用修飾符 i
正則物件中有第二個引數,可以傳入對應的值,i 代表讓正則不區分大小寫;
// 下面兩種寫法是等價的
var re = new regexp('a', 'i')
var re= /a/i
修飾符g代表全域性查詢
var reg = new regexp('\d+', 'g')
var reg = /\d+/ g
m代表多行查詢(必須與g一起使用,並且,當使用^和$模式時才會起作用)
正則中有一些字元本身是具有含義的,那麼如果我們要匹配這個字元就需要用到 ** 轉義
/ 匹配 /
\ 匹配 \
. 匹配 .
* 匹配 *
+ 匹配 +
? 匹配 ?
\匹配\
|匹配|
( 匹配 (
[ 匹配 [
] 匹配 ]
匹配 }
\』 匹配 單引號
\」 匹配 雙引號
\*** 查詢以八進位制數 *** 規定的字元
\xdd 查詢以十六進製制數 dd 規定的字元
\u***x 查詢以十六進製制數 ***x 規定的 unicode 字元
test方法
該方法用來測試某個字串是否與正則匹配,匹配就返回true,否則返回false
var reg = /a/
var str = 'abcdefg';
console.log(reg.test(str)); // true
compile
該方法的作用是能夠對正規表示式進行編譯,被編譯過的正則在使用的時候效率會更高,適合於對乙個正則多次呼叫的情況,如果對乙個正則只使用一兩次,那麼該方法沒有特別顯著的效應。
var reg=/[abc]/gi
console.log(reg.test('a'))
reg=/[cde]/gi
reg.compile(reg)
console.log(reg.test('a'))
console.log(reg.test('a'))
exec
返回的是乙個陣列,陣列元素為匹配的子字串
var str = 'dadf123dsafd33dfds;;;123dg;123'
var reg = /\d+/
var arr = reg.exec(str)
console.log(arr) // ['123']
search
查詢第一次匹配的子字串的位置,如果找到就返回乙個number型別的index值,否則返回-1
replace
該方法用來將字串中的某些子串替換為需要的內容,接受兩個引數,第乙個引數可以為正則或者子字串,表示匹配需要被替換的內容,第二個引數為被替換的新的子字串
split
將乙個字串拆分成乙個陣列,它接受乙個正則或者子字元(串)作為引數,返回乙個陣列
match
接收乙個正則作為引數,用來匹配乙個字串,返回乙個陣列
貪婪量詞: 貪婪模式盡可能多的匹配
?` `*` `+` `` `` `
惰性量詞: 惰性模式盡可能少的匹配
??` `*?` `+?` `?` `?` `?
用惰性量詞進行匹配時,它首先將第乙個字元當成乙個匹配,如果成功則退出,如果失敗,則測試前兩個字元,依次增加,直到遇到合適的匹配為止;
貪婪量詞與惰性量詞的方法正好相反,如果符合要求就一直往後匹配,一直到無法匹配為止,惰性量詞僅僅在貪婪量詞後面加個」?」而已。如」a+」是貪婪匹配的,」a+?」則是惰性的。
var str="abbbbcc"
貪婪: /[ab]+b/ 結果:abbbb
惰性: /[ab]+?b/ 結果:ab
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...