正規表示式

2021-10-10 19:20:28 字數 3267 閱讀 1209

[ ]中括號:匹配其中的某乙個字元

[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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...