正則表達式語法總結


全手打原創,轉載請標明出處:https://www.cnblogs.com/dreamsqin/p/10881659.html,多謝~=。=

(1)直接量字符

字符

匹配

字母和數字字符

自身

\o

NUL字符

\t

制表符

\n

換行符

\v

垂直制表符

\f

換頁符

\r

回車符

\xnn

由十六進制數nn指定的拉丁字符,\x0A=\n

\uxxxx

由十六進制數xxxx指定的Unicode字符,\u0009=\t

\cX

控制字符^X,\cJ=\n

 

(2)字符類

字符

匹配

[…]

方括號內的任意字符

[^…]

不在方括號內的任意字符

.

除換行符和其他Unicode行終止符之外的任意字符

\w

任何ASCII字符組成的單詞

[a-zA-Z0-9_]

\W

任何不是ASCII字符組成的單詞

[^a-zA-Z0-9_]

\s

任何Unicode空白符

\S

任何非Unicode空白符的字符

\d

任何ASCII數字,[0-9]

\D

除了ASCII數字之外的任何字符

[^0-9]

[\b]

退格直接量

 

(3)重復字符(貪婪匹配)

字符

含義

{n,m}

匹配前一項至少n次,但不能超過m次

{n,}

匹配前一項至少n次或者更多次

{n}

匹配前一項n次

?

匹配前一項0次或者1次(可選項)

{0,1}

+

匹配前一項1次或者多次

{1,}

*

匹配前一項0次或者多次(不限次)

{0,}

非貪婪匹配:盡可能少的匹配

??、+?、*?、{n,m}? 

 

(4)選擇、分組、引用字符

字符

含義

|

選擇,匹配左右子表達式(從左往右,若左邊匹配則忽略右邊)

(…)

組合

(?:…)

只組合

\n

和第n分組第一次匹配的字符相匹配

 

(5)錨字符

字符

含義

^

匹配字符串的開頭

$

匹配字符串的結尾

\b

匹配一個單詞的邊界

Eg:\bhi\b

\B

匹配非單詞邊界的位置

(?=p)

正向先行斷言,要求接下來的字符都與p匹配,但不包括p那些字符

(?!p)

負向先行斷言,要求接下來的字符不與p匹配

 

(6)修飾符

字符

含義

i

執行不區分大小寫的匹配

g

執行全局匹配,找到所有匹配

m

多行匹配模式

Eg:/java$/im → “java”或者“Java\nis fun”

 

(7)String對象

方法

示例

返回

特殊

search()

“JavaScript”.search(/script/i)

返回4

第一個與之匹配的子串的起始位置,找不到則返回-1

不支持全局檢索,忽略修飾符g

replace()

text.replace(/javascript/gi,“JavaScript”)

text.replace(/“([^”]*)”/, ‘“$1”’)

替換后的字符串

$數字

參數若非正則表達式,則直接搜索

match()

“1 plus 2 equals 3”.match(/\d+/g)

返回[“1”, “2”, “3”]

由匹配結果組成的數組,未匹配則返回null

非全局搜索時,a[0]存放完整匹配,a[1]存放a[0]與第一個括號括起來表達式相匹配的子串,所以a[n]存放的是$n的內容

split()

“123,456,789”.split(“,”)

返回[“123”, “456”, “789”]

“1,  2,  3,  4,  5”.split(/\s*,\s*/)

返回[“1”, “2” ,“3”, “4”, “5”]

拆分后的子串數組

參數是正則表達式時,可以指定分隔符,允許留白

 

(8)RegExp對象

方法

示例

返回

特殊

regExp()

var zipcode=new RegExp(“\\d{5}”, “g”)

RegExp對象

第一個參數正則表達式主體部分(兩斜線之間)

第二個參數可選,修飾符

“\”轉義字符前綴

exec()

var pattern=/Java/g;

var text=”JavaScript is more fun than Java!”;

var result=pattern.exec(text);

同match。

數組.index:發生匹配的字符位置

數組.input:引用正在檢索的字符串

數組第一個元素為與正則表達式匹配的字符串,余下的是與圓括號內的子表達式匹配的字符串。

同一個正則表達式第二次調用exec()時,將從lastIndex出開始檢索。

test()

var pattern=/java/I;

pattern.test(“JavaScript”);

只要存在匹配就返回true,否則返回false

也可使用lastIndex屬性

 

屬性

含義

類型

source

正則表達式的文本

只讀字符串

global

是否帶有修飾符g

只讀布爾值

ignoreCase

是否帶有修飾符i

只讀布爾值

multiline

是否帶有修飾符m

只讀布爾值

lastIndex

若有修飾符g,該屬性存儲在整個字符串中下一次檢索的開始位置

可讀/寫整數(exec和text方法會用到)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM