用于创建正则表达式的字符

字符描  述
\ 有以下两种:
  • 字符通常按字面处理,指示下一个为特殊字符不必完全按字面解释;如:/b/ 匹配字符 'b',通过在字符 b 前放置反斜杠,即 /\b/,字符就成为特殊并匹配一个单词边境;
  • 指示下一个字符不是特殊字符并按字面解释;如: * 是一个特殊字符意味着前0个或多字符将匹配,如 /a*/ 意味着匹配 0 或更多的 a,为了按字面匹配 *,需在其前加反斜杠(如 /a\*/ 匹配 'a*')。
^ 匹配输入或行的开始,如 /^A/ 不匹配 "an A" 中的字符 'A',但匹配 "An A"
$ 匹配输入或行的结尾,如 /t$/ 不匹配 "eater" 中的字符 't',但匹配 "eat"
* 匹配前0个或多个字符,如 /bo*/ 匹配 "A ghost booooed" 中的 'boooo' 和 "A bird warbled" 的 'b',但在 "A goat grunted" 中无匹配
+ 匹配前1个或多个字符,等价于 {1,},如 /a+/ 匹配 "candy" 中的字符 'a',以及 "caaaaaaandy" 中的所有 a
? 匹配前0个或1个字符,如 /e?le?/ 匹配 "angel" 中的 'el',以及 "angle" 中的 'le'
. 匹配任何单一字符除了换行符,如 /.n/ 在语句 "nay, an apple is on the tree" 中匹配 'an' 和 'on' ,但不匹配 'nay'
(x) 匹配 'x' 并存储该匹配,如:在语句 "foo bar." 中 /(foo)/ 匹配并存储 'foo',该匹配子串可以被数组元素 [1], ..., [n] 中调用,或从预定义 RegExp 对象属性 $1, ..., $9 中调用。
x|y 匹配 'x' 或'y',如:/green|red/ 匹配语句 "green apple" 中的 'green',以及语句 "red apple" 中的 'red'
{n}

n 是一个正整数,精确匹配前 n 个出现的字符,如:/a{2}/ 并不匹配 "candy" 中的字符 'a',但它匹配 "caandy" 中的两个 a,以及 "caaandy" 中的第一和第二个字符 a。

{n,} n 是一个正整数,匹配至少前 n 个出现的字符,如:/a{2,}/ 不匹配 "candy" 的字符 'a',但匹配 "caandy" 和 "caaaaaaandy" 中所有的字符 'a'。
{n,m} n 和 m 是一个正整数,匹配至少前 n 个但最多 m 个的字符,如:/a{1,3}/ 在 "cndy" 中无匹配,而匹配 "candy" 中的 'a'、 "caandy" 中的第一和第二个 'a',以及 "caaaaaaandy" 中第一到第三个 'a'(即 "aaa"),虽然原始字符串中有更多个字符 'a'。
[xyz] 一个字符集合,匹配任一内附的字符,您也可以用连接符指定一个字符范围,如:[abcd] 等同于 [a-d]。它可以匹配 "brisket" 中的 'b' 和 "ache" 中的 'c'。
[^xyz] 一个负数或补码字符集合,它匹配没有内附在方框号中的任何字符,同样您也可以用连接符指定一个字符范围,如:[^abc] 等同于 [^a-c],它可以匹配 "brisket" 中的 'r',但不匹配其中的 'b'。
[\b] 匹配一个退格 backspace(不要同 \b 搞混淆)
\b 匹配一个单词边界(字符串中各字符的分界,如空白和换行符),如:/\bn\w/ 匹配 "noonday" 中的 'no' ,/\wy\b/ 匹配 "possibly yesterday" 中的 'ly'。
\B 匹配一个非单词边界,如:/\w\Bn/ 匹配 "noonday" 中的 'on',/y\B\w/ 匹配 "possibly yesterday" 中的 'ye'。
\cX 此处 X 为一个控制字符,它匹配字符串的控制字符,如 /\cM/ 匹配字符串中的 control-M。
\d 匹配一个数字符,等同于 [0-9],如:/\d/ 或 /[0-9]/ 均匹配 "B2 is the suite number" 中的 '2'。
\D 匹配任何非数字符,等同于 [^0-9],如:/\D/ 或 /[^0-9]/ 匹配 "B2 is the suite number" 中的 'B'。
\f 匹配换页符
\n 匹配换行符
\r 匹配回车符
\s 匹配一个单独空白字符,包括空格、制表符、换页、换行,等同于 [ \f\n\r\t\v],如:/\s\w*/ 匹配 "foo bar" 中的 ' bar'。
\S 同上面相反,它匹配除了空白符外的单一字符,等同于 [^ \f\n\r\t\v],如:/\S\w*/ 匹配 "foo bar" 中的 'foo'。
\t 匹配一个制表符
\v 匹配一个垂直制表符
\w 匹配任何包含下划线的字母和数字字符,等同于 [A-Za-z0-9_],如:/\w/ 匹配 "apple" 中的 'a',"$5.28" 是的 '5' 和 "3D" 中的 '3'。
\W 匹配任何非字母和数字符,等同于 [^A-Za-z0-9_],如:/\W/ 或 /[^$A-Za-z0-9_]/ 匹配 "50%" 中的 '%'。
\n n 是一个正整数,返回存储的匹配引用,如:/apple(,)\sorange\1/ 匹配 "apple, orange, cherry, peach" 中的 'apple, orange,'。
注意:如果左边的括号少于 \n 中指定的数字,\n 作为一个八进制转义字符(见下行)
\ooctal
\xhex

\ooctal 是一个八进制转义字符值,\xhex 是一个十六进制转义字符值,允许您植入一个 ASCII 码到规则表达式。

 

posted @ 2013-05-20 17:34  samxu  阅读(252)  评论(0编辑  收藏  举报