比對字元清單
您可以在方括號 ([ ]) 內置入一個或多個個別字元,建立比對字元清單。 當字元放在方括號中時,這份清單就稱為「方括號運算式」(Bracket Expression)。
放在方括號運算式內的字元只會針對規則運算式中出現方括號運算式的位置比對單一字元。 下列 JScript 規則運算式會比對 "Chapter 1"、"Chapter 2"、"Chapter 3"、"Chapter 4" 和 "Chapter 5"。
/Chapter [12345]/
括號運算式只是用來指定能夠比對 Chapter 這個字與空格之後的單一字元位置, 即第九個字元位置。
方括號運算式中的字元
就像在別處一樣,方括號內的一般字元都代表其本身。 亦即,這些字元會在搜尋到的文字中比對符合本身的項目。 當特殊字元出現在括號運算式內部時,大部分的特殊字元會失去原義, 以下提供一些範例。
如果右方括號字元 (]) 不是第一個項目,即代表清單結尾。 若要在清單中比對右方括號字元,請緊接在左方括號 ([) 後面,先加入右方括號字元。
反斜線字元 (\) 仍然是逸出字元。 若要比對反斜線字元,請使用兩個反斜線 (\\)。
使用連字號表示字元範圍
如果要使用範圍來表達比對字元,而不是使用字元本身,您可以使用連字號 (-) 字元來分隔範圍的起始字元及結束字元。 下列規則運算式相當於 /Chapter [12345]/。
/Chapter [1-5]/
開始值和結束值都會包含在範圍內。 請注意,就 Unicode 排序次序而言,開始值的優先順序高於結束值。 個別字元的字元值決定它們在範圍內的相對順序。
一般會使用方括號運算式的情況是,指定任何大寫或小寫字母字元或任何數字的比對。 下列運算式便會指定這樣的比對。
/[A-Za-z0-9]/
將連字號字元納入運算式
若要將連字號字元納入方括號運算式中,您可以使用下列其中一種方法:
在字元前面加上反斜線逸出字元,如下列運算式所示。
[\-]
將連字號字元放置在括號清單的開頭或結尾。 下列運算式會比對所有小寫字母及連字號。
[-a-z] [a-z-]
建立起始字元值小於連字號字元且結束字元值等於或大於連字號字元的字元範圍。 下列兩個規則運算式都符合這些條件。
[!--] [!-~]
使用插入號表示否定
您也可以在清單開頭加入插入號 (^) 字元,尋找不在清單或範圍內的所有字元。 如果插入號字元出現在清單中的其他任何位置,則會比對本身;即插入號字元沒有特殊意義。 下列規則運算式會比對沒有包含字元 1 到 5 的章節標題。
/Chapter [^12345]/
前述範例中的運算式會比對第九個位置中除了 1、2、3、4 或 5 以外的任何字元。 因此,舉例來說,"Chapter 7" 便符合條件,而 "Chapter 9" 也是。
您可以使用連字號字元 (-) 來表示相同的運算式。 下列運算式便會指定這樣的比對。
/Chapter [^1-5]/
比對任何字元
句號 (.) 會比對字串中的任何單一列印字元或非列印字元,但是新行字元 (\n) 除外。 JScript 中的 /a.c/ 規則運算式會比對 "aac"、"abc"、"acc"、"adc"、"a1c"、"a2c"、"a-c" 和 "a#c"。
若要比對搜尋字串中包含的句號 (.),您可以在規則運算式中的句號前面加上反斜線 (\)。 /filename\.ext/ 規則運算式會比對 "filename.ext"。