正規表示式

2021-10-12 19:24:44 字數 3518 閱讀 7028

正規表示式是乙個特殊的字串(正規表示式必須用//做定界符),由元字元和原義字元組成。

(1)元字元:構成正規表示式中字串匹配的特定字元,在正規表示式中元字元往往具備自己的含義。

元字元分為:基本元字元、範圍、重複、轉義字元。

(2)原義字元:在正規表示式中表示為字面含義的字元就是原義字元。

. 表示任意字元,包括字母、數字、下劃線等。例如:/a.b/

^ 表示以具體的內容開頭。例如:/^1/,表示以1開頭的字串。

$ 表示以具體的內容結尾。例如:/d$/,表示以d結尾的字串。

* 表示前一字元重複0次或多次。例:/ab*/,表示b沒有或重複多次,b左側為a。

? 表示前一字元重複0次或1次。例:/ab?/,表示b沒有或出現1次,b左側為a。

+ 表示前一字元重複1次或多次。例:/ab+/,表示b出現1次或重複多次,b左側為a。

| 表示兩邊的字元匹配其中任意乙個。例:/a|b/,表示a或b。

(1)功能:返回字串中匹配正規表示式reg的子串內容。

(2)返回值:帶有特定幾個取值的類陣列。

**如下(示例):

var str=

"console"

;var reg=

/ns/

;var e=str.

match

(reg)

;console.

log(e)

;console.

log(e[0]

);console.

log(e.index)

;console.

log(e.input)

;console.

log(e.length)

;// ["es", index: 4, input: "chinese", groups: undefined]

// 「es」,字串str中匹配正規表示式reg的子串內容

//4,字串str中匹配正規表示式reg的子串的索引值

//「chinese」,返回原始字串str

//1,返回字串str中匹配正規表示式reg的子串的個數

var hantih=

"13000180000"

var reg=

/^130*/

;var e=hantih.

match

(reg)

;console.

log(e)

;// 匹配到開頭為1中間為8後面有零也可以沒有零

// 輸出結果:"13000", index: 0, input: "13000180000", groups: undefined

var amd=

"130013000"

;var reg=

/130*/g

;var e=amd.

match

(reg)

;console.

log(e)

;//輸出結果 ["1300", "13000"]

// 正規表示式的修飾符g,表示全域性匹配,可以找到匹配正規表示式的多個子串。

var amd1=

"13052559669x"

;var amd2=

"130525596692"

;var reg=

/(x|x)$/

;var e1=amd1.

match

(reg)

;var e2=amd2.

match

(reg)

;console.

log(e1)

;console.

log(e2)

;// e2中第乙個x(r2[0])表示字串code2中匹配正規表示式reg的子串。

// e2中第二個x(r2[1])表示字串code2中匹配正規表示式reg中()擴住部分的子串。

var amd=

"1322223300330x"

;var reg=

/x$/i

;var e=amd.

match

(reg)

;console.

log(e)

;// 以x結尾,並且忽略大小寫

// 輸出結果index.js:38 ["x", index: 13, input: "1322223300330x", groups: undefined]

// 正規表示式的修飾符i,表示字母的大小寫。

(1)功能:返回字串中匹配正規表示式reg的子串的索引值。

(2)返回值:找到匹配的第乙個子串,則返回該子串在字串中的索引值;找不到則返回-1。

**如下(示例):

var amd1=

"i like football"

;var amd2=

"i like basketball"

;var reg=

/football|basketball/

;//表示兩個原義字串選乙個

var e1=amd1.

search

(reg)

;var e2=amd2.

search

(reg)

;console.

log(e1)

; console.

log(e2)

;//輸出結果為:7

var amd=

"banana"

;var reg=

/b(an)+/

;var e=amd.

match

(reg)

;var idx=amd.

search

(reg)

;console.

log(e)

;console.

log(idx)

;// e[0]是「banan」,是字串fruit匹配正規表示式reg的子串。

// e[1]是「b」,是字串fruit匹配正規表示式reg中第乙個()的子串。

// e[2]是「an」,是字串fruit匹配正規表示式reg中第二個()的子串。

$

(function()

console.

log(

"輸入錯誤")}

}})}

)

(1)功能:找出字串中匹配正規表示式reg的子串,並利用字串target對匹配的子串進行替換。

var statement=

"this,is,my,book"

;var reg=

/,/g

;//因為有多個逗號替換成空格,所以必須全域性匹配

var result=statement.

replace

(reg,

" ")

;//將字串statement中的逗號替換成空格

console.

log(result)

;//輸出結果:this is my book

正規表示式 正規表示式 總結

非負整數 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正規表示式 編寫正規表示式

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