字元、中繼字元與中繼序列
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
|
比對定位點字元。
|
\u
nnnn
|
比對 Unicode 字元,其字元代碼是以十六進位數字
nnnn
指定。例如,
\u263a
是笑臉字元。
|
\v
|
比對垂直換頁字元。
|
\w
|
比對文字字元 (
AZ
–、
az
–、
0-9
或
_
)。請注意,
\w
不比對非英文字元,例如
é
、
ñ
或
ç
。
|
\W
|
比對文字字元以外的任何字元。
|
\\x
nn
|
比對帶有指定的 ASCII 值的字元,以十六進位數字
nn
定義。
|
|
|
|