2009年2月3日

RegExp 速查表

RegExp 一頁 | 二頁 | 三頁 | 四頁 | 五頁 | 特徵 | 方法 | 速查表

文法規則計算式( Regular Expression),用在字串的符合計算,可以作子字串的搜尋,替換。Regular Expression 過去都翻譯成 正規表示法 或正則表示法,先解釋一下為什麼我會翻譯成文法規則計算式。首先牽涉到語文規則的都稱為文法,而英文文法中有 regular verbs 與 irregular verbs,分別是規則動詞與不規則動詞。所以 regular 翻成文法規則為宜。其次,在電腦程式術語中 arithmetic expression 通常翻譯成 數學計算式 或計算式。其實電腦之中,就是利用數學計算來分析文法規則,所以 Regular Expression 可以翻譯成 文法規則計算式 或文法式。

RegExp 的特別字符

\ 脫離字母。
^ 文字行的開始位置。
$ 文字行的尾端。
* 符合發生 0 次或更多次。
+ 符合發生 1 次或更多次。等於 {1,}。
? 符合發生 0 次或 1次。
. 除了 \n \r \u2028 \u2029 的任一字母。
(x) 此名為存入括號。
(?:x) 計算符合 x,但是不存入結果陣列。
x(?=y) x 符合的條件要加上 x 之後必須接 y。
x(?!y) x 符合的條件要加上 x 之後不可接 y。
x|y 符合 x 或 y 都可以。
{n} n 是正整數。符合正好發生 n 次。
{n,} n 是正整數。符合發生 n 次或更多次。
{n,m} n, m 是正整數。符合發生至少 n 次,最多 m 次。
[xyz] 字母集合。符合其中的字母。
[^xyz] 不屬於字母集合中的字母。
[\b] 字碼,清除前一字。與下面的不同。
\b 字的邊界。
\B 不是字的邊界。
\cX 控制字母,X 由 A 到 Z。
\d 數字,等於 [0-9]。
\D 拉丁字母中的非數字,等於 [^0-9]。
\f 字碼,跳至下一頁。
\n 字碼,跳至新行。
\r 字碼,跳至行首。
\s 單一空白字元。
\S 單一非空白字元。
\t 字碼,tab。
\v 字碼,垂直跳行。
\w 英文大小寫字母,數字,底線”_”。
\W 字母不屬於英文大小寫字母,數字,底線”_”。
\n n 是正整數,表第 n 個 存入括號
\0 空字元。其後不要接數字。
\xhh ASCII 碼,兩位 16 進位數。
\uhhhh 獨角碼,四位 16 進位數。

RegExp 的特徵

下述特徵必須與 RegExp 配合使用,不能用在物件實體。

prototype 可以增加物件的特徵與方法。
$1 至 $9 使用存入括號,可將符合的子字串存入陣列中,然後用特徵 $1 ~ $9 讀出。
length 存有參數的個數。

RegExp 物件實體的特徵

constructor 存有產生物件實體的函式其位置。
global 如果字旗 g 有設,則為 true;否則為 false。唯讀。
ignoreCase 如果字旗 i 有設,則為 true;否則為 false。唯讀。
lastIndex 程式師可指定符合計算的起始位置。符合計算後 lastIndex 會被設為符合子字串的下一個位置。
multiline 如果字旗 m 有設,則為 true;否則為 false。唯讀。
source 內存文法規則。唯讀。

RegExp 物件實體的方法

exec() 對母字串加以處理,尋找符合文法規則的子字串,結果存入陣列中。
test() 對母字串加以處理,尋找符合文法規則的子字串。
toString() 此法傳回物件實體的字串。

©2008-2009 by ant2legs, All Rights Reserved. ant2legs 擁有其製作的文章,圖片與程式的著作權,所有權利保留。