字符、元字符和元序列
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
)。有关详细信息,请参阅
标志和属性
。
|
*
(星号)
|
匹配前面重复零次或多次的项目。
有关详细信息,请参阅
数量表示符
。
|
+
(加号)
|
匹配前面重复一次或多次的项目。
有关详细信息,请参阅
数量表示符
。
|
?
(问号)
|
匹配前面重复零次或一次的项目。
有关详细信息,请参阅
数量表示符
。
|
(
和
)
|
在正则表达式中定义组。以下情况下使用组:
-
限制逻辑“或”字符 | 的范围:
/(a|b|c)d/
-
定义数量表示符的范围:
/(walla.){1,2}/
-
用在逆向引用中。例如,下面的正则表达式中的
\1
匹配模式的第一个括号组中的匹配内容:
-
/(\w*) is repeated: \1/
有关详细信息,请参阅
组
。
|
[
和
]
|
定义字符类,字符类定义单个字符可能的匹配:
/[aeiou]/
匹配所指定字符中的任意一个。
在字符类中,使用连字符 (
-
) 指定字符的范围:
/[A-Z0-9]/
匹配从 A 到 Z 的大写字母或 0 到 9 的数字。
在字符类中,插入反斜杠对 ] 和
- 字符:
/[+\-]\d+/
匹配一个或多个数字前面的
+
或
-
。
在字符类中,以下字符(通常为元字符)被看作一般字符(非元字符),不需要反斜杠:
/[$]/
£ 匹配
$
或
£。
有关详细信息,请参阅
字符类
。
|
|
(竖线)
|
用于逻辑“或”操作,匹配左侧或右侧的部分:
/abc|xyz/
匹配
abc
或
xyz
。
|
关于元序列
元序列是在正则表达式模式中具有特殊含义的字符序列。下表说明了这些元序列:
元序列
|
说明
|
{
n
}
{
n
,}
和
{
n
,
n
}
|
指定前一项目的数值数量或数量范围:
/A{27}/
匹配重复
27
次的字符
A
。
/A{3,}/
匹配重复
3
次或更多次的字符
A
。
/A{3,5}/
匹配重复
3
到
5
次的字符
A
。
有关详细信息,请参阅
数量表示符
。
|
\b
|
匹配单词字符和非单词字符之间的位置。如果字符串中的第一个或最后一个字符是单词字符,则也匹配字符串的开头或结尾。
|
\B
|
匹配两个单词字符之间的位置。也匹配两个非单词字符之间的位置。
|
\d
|
匹配十进制数字。
|
\D
|
匹配除数字以外的任何字符。
|
\f
|
匹配换页符。
|
\n
|
匹配换行符。
|
\r
|
匹配回车符。
|
\s
|
匹配任何空白字符(空格、制表符、换行符或回车符)。
|
\S
|
匹配除空白字符以外的任何字符。
|
\t
|
匹配制表符。
|
\u
nnnn
|
匹配字符代码由十六进制数字
nnnn
指定的 Unicode 字符。例如,
\u263a
是一个笑脸字符。
|
\v
|
匹配垂直换页符。
|
\w
|
匹配单词字符(
A-Z
、
a-z
、
0-9
或
_
)。请注意,
\w
不匹配非英文字符,如
é
、
ñ
或
ç
。
|
\W
|
匹配除单词字符以外的任何字符。
|
\\x
nn
|
匹配具有指定 ASCII 值(由十六进制数字
nn
定义)的字符。
|
|
|
|