正規表示式

2021-08-21 23:42:23 字數 2999 閱讀 6335

正規表示式(regular expression)是乙個描述字元模式的物件。ecmascript 的regexp類表示正規表示式,而string 和regexp 都定義了使用正規表示式進行強大的模式匹配和文字檢索與替換的函式。

1.兩種建立方式

a.建構函式建立方式:

var pattern = new  regexp("box");  //第乙個引數字串

var partern = new regexp("box","i") //第二個引數可選模式修飾符

b.字面量建立方式:

var pattern = /box/;  

var pattern = /box/i;

引數 含義i

忽略大小寫

g全域性匹配

m多行匹配

2.regexp物件的測試方法方法

功能返回值

test

在字串中測試模式匹配,返回true或false

true/false

exec

在字串中執行匹配搜尋,返回結果陣列

array/null

**3.string物件中的正規表示式方法**

方法含義

match(pattern)

返回pattern中的子串或null

replace(pattern,replacement)

用replacement替換pattern

search(pattern)

返回字串中pattern開始位置

split(pattern)

返回字串按指定pattern拆分的陣列

4.regexp物件的靜態屬性屬性

短名含義

input

$_當前被匹配的字元

lastmatch

$&最後乙個匹配字元

lastparen

$+最後一對圓括號內的匹配子串

leftcontext

$`最後一次匹配前的子串

multiline

$*用於指定是否所有的表示式都用於多行的布林值

rightcontext

$'在上次匹配之後的子串

**5.regexp物件的例項屬性**

屬性含義

global

boolean值,表示g是否已設定

ignorecase

boolean值,表示i是否已設定

multiline

boolean值,表示m是否已設定

lastindex

整數,代表下次匹配將從**字元位置開始

source

正規表示式的源字串形式

三、獲取控制 ------ **1.字元類:單個字元和數字**

元字元/元符號

匹配情況

.匹配除換行符外的任意字元

[a-z0-9]

匹配括號中的字符集中的任意字元

\d匹配數字

\d匹配非數字

[^a-z0-9]

匹配任意非括號中的字符集中的字元

\w匹配字母和數字及下劃線

\w匹配非字母和數字及下劃線

2.字元類:單個字元和數字

元字元/元符號

匹配情況

\0匹配null字元

\b匹配空格字元

\f匹配進紙字元

\n匹配換行符

\r匹配回車字元

\t匹配製表符

\s匹配空白字元、空格、製表符、換行符,相當於[\t\f\n\r ]

\s匹配非空白字元

3.字元類:錨字元

元字元/元符號

匹配情況

^行首匹配

$行尾匹配

\a只有匹配字串開始處

\b匹配單詞邊界,詞在內時無效

\b匹配非單詞邊界

\g匹配當前搜尋的開始位置

\z匹配字串結束處或行尾

\z只匹配字串結束處

4.字元類:重複字元

元字元/元符號

匹配情況

x?匹配0個或1個x

x*匹配0個或任意多個x

x+匹配至少乙個x

(xyz)+

匹配至少乙個xyz

x匹配最少m個最多n個x

5.字元類:替代字元

元字元/元符號

匹配情況

this|where|logo

匹配this或where或logo中任意乙個

6.字元類:記錄字元

元字元/元符號

匹配情況

(string)

用於反向引用的分組

\1或者$1

匹配第乙個分組中的內容

\2或者$2

匹配第二個分組中的內容

\3或者$3

匹配第三個分組中的內容

x匹配最少m個最多n個x

7.貪婪與惰性貪婪

惰性++??

??**??

??8.捕獲性分組與前瞻性分組模式

表示式特性

捕獲性()

有子串$1~$9,exec()包含分組值

非捕獲性

(?:)

無子串 ,exec()不包含分組值

正向前瞻

(?=)

?=後面有什麼

反向前瞻

(?!)

?!後面沒有什麼

9.反向引用名稱

表示式特性

例子反向引用

\1引用第乙個被分組所捕獲的串,對應分組$1,如果編號超過了,則會被當成普通的表示式

/(\w)\s\1/ 同等於 /(\w)\s(\w)/

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

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

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