正則的用法

2021-10-04 15:50:52 字數 2747 閱讀 3358

1、正則的概念

正規表示式(regular expression)是乙個描述字元規則的物件。可以用來檢查乙個字串是否含有某個子字串,將匹配的子字串做替換或者從某個字串中取出符合某個條件的子串等。

2、建立方式

第一種:

i:表示忽略大小寫ignore。

g:表示全域性匹配,查詢所有匹配而非在找到第乙個匹配後停止 global。

第二種方式:

3、正則的物件方法

test: 正則例項物件的test方法返回乙個布林值,表示當前模式是否能匹配引數字串。

上面**驗證引數字串之中是否包含cat,結果返回true

如果正規表示式帶有g修飾符,則每一次test方法都從上一次結束的位置開始向後匹配。

上面**的正規表示式使用了g修飾符,表示是全域性搜尋,會有多個結果。接著,三次使用test方法,每一次開始搜尋的位置都是上一次匹配的後乙個位置。

exec:用於檢索字串中的正規表示式的匹配。返回乙個陣列,其中存放匹配的結果。如果未找到匹配,則返回值為null。

上面**中,正則物件r1匹配成功,返回乙個陣列,成員是匹配結果;正則物件r2匹配失敗,返回null。

4、字串函式

replace: 按照給定的正規表示式進行替換,返回替換後的字串。

字串物件的replace方法可以替換匹配的值。它接受兩個引數,第乙個是正規表示式,表示搜尋模式,第二個是替換的內容。

正規表示式如果不加g修飾符,就替換第乙個匹配成功的值,否則替換所有匹配成功的值。

match: 字串例項物件的match方法對字串進行正則匹配,返回匹配結果。

從上面**可以看到,字串的match方法與正則物件的exec方法非常類似:匹配成功返回乙個陣列,匹配失敗返回null。

如果正規表示式帶有g修飾符,則該方法與正則物件的exec方法行為不同,會一次性返回所有匹配成功的結果

search:檢索與正規表示式相匹配的值。返回字串中第乙個與正規表示式相匹配的子串的起始位置。如果沒有找到則返回-1。

上面**中,第乙個匹配結果出現在字串的1號位置。

5:正規表示式構成

大部分字元在正規表示式中,就是字面的含義,比如/a/匹配a,/b/匹配b。如果在正規表示式之中,某個字元只表示它字面的含義(就像前面的a和b),那麼它們就叫做「字面量字元」。

上面**中正規表示式的dog,就是字面量字元,所以/dog/匹配old dog,因為它就表示d、o、g三個字母連在一起。

除了字面量字元以外,還有一部分字元有特殊含義,不代表字面的意思。它們叫做「元字元」,主要有以下幾個:

正規表示式是由普通字元(例如字元a到z)以及特殊字元(稱為元字元)組成的文字模式。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。

元字元—限定符:

限定符可以指定正規表示式的乙個給定元件必須要出現多少次才能滿足匹配。

*:匹配前面的子表示式零次或多次。

+:匹配前面的子表示式一次或多次。

?:匹配前面的子表示式零次或一次。

:匹配確定n次。

:至少匹配n次。

:最少匹配n次且最多匹配m次。

元字元—字元匹配符:

元字元—定位符:

定位符可以將乙個正規表示式固定在一行的開始或結束。也可以建立只在單詞內或只在單詞的開始或結尾處出現的正規表示式。

^:匹配輸入字串的開始位置。

$:匹配輸入字串的結束位置。

元字元—轉義符:

\:用於匹配某些特殊字元。

正規表示式中那些有特殊含義的元字元,如果要匹配它們本身,就需要在它們前面要加上反斜槓。比如要匹配+,就要寫成+。

上面**中,第乙個正規表示式之所以不匹配,因為加號是元字元,不代表自身。第二個正規表示式使用反斜槓對加號轉義,就能匹配成功。

元字元—選擇匹配符:

|:可以匹配多個規則。

豎線符號(|)在正規表示式中表示「或關係」(or),即cat|dog表示匹配cat或dog。

正則基礎用法

var str 3.18215414.2152.54123 var reg 2.54 g 表示匹配任意字元,所以這裡面會匹配到2154和2.54,不加g則只會匹配到第乙個 console.log str.match reg match匹配出來的是陣列 2154,2.54 search尋找的是匹配到的...

正則re的基本用法

表示式 含義 預設匹配除 n之外的任意乙個字元,若指定flag dotall,則匹配任意字元,包括換行 從字元開頭開始匹配 匹配字元結尾 匹配號前的字元0次或多次,re.findall ab cabb3abcbbac 結果為 abb ab a 匹配前乙個字元1次或多次,re.findall ab a...

正則 和 用法,範例

exp 匹配exp,並捕獲文字到自動命名的組裡 exp 匹配exp,並捕獲文字到名稱為name的組裡,也可以寫成 name exp exp 匹配exp,不捕獲匹配的文字 位置指定 exp 匹配exp前面的位置 exp 匹配exp後面的位置 exp 匹配後面跟的不是exp的位置 例子 測試1 假如有下...