正規表示式元字元與普通字元

admin發表於2018-08-23

首先看一段極其簡單的程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
let str="ant5love"
let reg=/ant\d/g;
str.match(reg);

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/23/024003gj4h7444jxtvlzhd.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

從上面的程式碼可以總結出如下幾點:

(1).正規表示式是具有一定規則的字串。

(2).組成正則的字串可以有普通的字元也可以有特殊字元(元字元)。

一.普通字元:

和普通人一樣,普通字元比較簡單,一眼就可以看透。

普通字元就是可見即所得,比如正規表示式中的a就可以匹配字串中的字元"a"。

我們看到什麼它就能匹配什麼,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
let str="ant"
let reg=/antzone/g;
str.match(reg);

"ant"中的字元個個都是普通字元,那麼我們看到什麼它就能匹配什麼。

二.元字元:

如果正則表示中僅存在普通字元,那麼它的能力就太有限,也不會被應用如此廣泛。

正規表示式的元字元從形成方式基本可以分為兩大類:

(1).本身就有特殊意義,比如^ 、$ 、.、 *、 +和 ?等:

它們本身在正則中就有特殊意義,如果想匹配它們自身則需要使用轉義字元。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
let str="ab+"
let reg=/\w+/g;
str.match(reg);

程式碼執行截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/23/024102r587p022scqcmcq5.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

加號就一個元字元,成功實現匹配效果。

如果要匹配加號,則前面需要使用轉義字元,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
let str="a+"
let reg=/\w\+/g;
str.match(reg);

程式碼執行截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/23/024148qnlilnb7ll6gw6wk.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

(2).通過轉義字元使其具有特殊意義:

例如w就是一個普通字元,但是\w就成為元字元。

非常容易理解,不再舉例子。

元字元的數量很多,這裡也不再列舉,本文主要目的是理解普通字元和元字元。

相關文章