字元、中繼字元與中繼序列
Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本
最簡單的規則運算式是比對字元序列的規則運算式,如下列範例所示:
var pattern:RegExp = /hello/;
然而,下列稱為中繼字元的字元,在規則運算式中具有特殊意義:
^ $ \ . * + ? ( ) [ ] { } |
例如,下列規則運算式比對字母 A 後面跟著零或更多的字母 B (星號中繼字元表示此種重複現象),後面再跟著字母 C:
/AB*C/
若要在規則運算式的模式中納入中繼字元並排除其特殊意義,必須使用反斜線 (\) 跳脫字元。例如,下列規則運算式依序比對字母 A、字母 B、星號及字母 C:
var pattern:RegExp = /AB\*C/;
「中繼序列」和中繼字元一樣,在規則運算式中都具有特殊意義。中繼序列是由一個以上的字元所組成。下列章節內容提供使用中繼字元和中繼序列的詳細資訊。
關於中繼字元
下表摘要說明可用於規則運算式的中繼字元:
中繼字元
|
說明
|
^ (跳脫字元)
|
比對字串的開頭。設定好 m (multiline) 旗標,跳脫字元也會比對行開頭 (請參閱旗標和屬性)。請注意,跳脫字元用於字元類別開頭時,所代表的是負值,而非字串開頭。如需詳細資訊,請參閱字元類別。
|
$(貨幣符號)
|
比對字串結尾。設定好 m (multiline) 旗標之後,$ 也會比對新行 (\n) 字元之前的位置。如需詳細資訊,請參閱旗標和屬性。
|
\ (反斜線)
|
跳脫特殊字元的特殊中繼字元意義。
另外,若要在規則運算式常值中使用正斜線字元,請同時使用反斜線字元,如 /1\/2/ 中所示 (以比對字元 1,後面依序跟著正斜線字元與字元 2)。
|
. (點)
|
比對任何單一字元。
只有在設定 s (dotall) 旗標之後,點才會比對新行字元 (\n)。如需詳細資訊,請參閱旗標和屬性。
|
* (星號)
|
比對之前重複零次或多次的項目。
如需詳細資訊,請參閱數量詞。
|
+ (加號)
|
比對之前重複一或多次的項目。
如需詳細資訊,請參閱數量詞。
|
? (問號)
|
比對之前重複零次或一次的項目。
如需詳細資訊,請參閱數量詞。
|
( 和 )
|
定義規則運算式中的群組。將群組用於下列用途:
如需詳細資訊,請參閱群組。
|
[ 和 ]
|
定義字元類別,此字元類別定義單一字元可能的相符項目:
/[aeiou]/ 比對任一指定字元。
在字元類別中,使用連字符號 (-) 來指定字元範圍:
/[A-Z0-9]/ 比對大寫字元 A 到 Z 或 0 到 9。
在字元類別中,插入反斜線以跳脫 ] 和
- 字元:
/[+\-]\d+/ 比對在一或多個數字之前的 + 或 -。
在字元類別中,其它字元 (通常是中繼字元) 會被視為一般字元 (非中繼字元),因此無須加上反斜線:
/[$]/£ 比對 $或 £。
如需詳細資訊,請參閱字元類別。
|
| (管道)
|
做為替代,以比對左側部分或右側部分:
/abc|xyz/ 比對 abc 或 xyz。
|
關於中繼序列
中繼序列是在規則運算式模式中具有特殊意義的字元序列。下表說明這些中繼序列:
中繼序列
|
說明
|
{n}
{n,}
和
{n,n}
|
指定前述項目的數值數量詞或數量詞範圍:
/A{27}/ 比對字元 A 重複 27 次。
/A{3,}/ 比對字元 A 重複 3 次或 3 次以上。
/A{3,5}/ 比對字元 A 重複 3 到 5 次。
如需詳細資訊,請參閱數量詞。
|
\b
|
比對文字字元和非文字字元之間的位置。如果字串中第一個或最後一個字元是文字字元,那麼也比對字串的開頭或結尾。
|
\B
|
比對兩個文字字元之間的位置。也比對兩個非文字字元之間的位置。
|
\d
|
比對十進位數字。
|
\D
|
比對數字以外的任何字元。
|
\f
|
比對換頁字元。
|
\n
|
比對新行字元。
|
\r
|
比對歸位字元。
|
\s
|
比對任何空白字元 (空格、定位點、新行或歸位字元)。
|
\S
|
比對空白字元以外的任何字元。
|
\t
|
比對定位點字元。
|
\unnnn
|
比對 Unicode 字元,其字元代碼是以十六進位數字 nnnn 指定。例如,\u263a 是笑臉字元。
|
\v
|
比對垂直換頁字元。
|
\w
|
比對文字字元 (AZ–、az–、0-9 或 _)。請注意,\w 不比對非英文字元,例如 é、ñ 或 ç。
|
\W
|
比對文字字元以外的任何字元。
|
\\xnn
|
比對帶有指定的 ASCII 值的字元,以十六進位數字 nn 定義。
|