生成正则表达式
正则表达式的结构与算术表达式的结构类似。即,各种元字符和运算符可以将小的表达式组合起来,创建大的表达式。
分隔符
通过在一对分隔符之间放置表达式模式的各种组件,就可以构建正则表达式。对于 JScript,分隔符是正斜杠 (/) 字符。例如:
/expression/
在上面的示例中,正则表达式模式 (expression) 存储在 RegExp 对象的 Pattern 属性中。
正则表达式的组件可以是单个字符、字符集、字符的范围、在几个字符之间选择或者所有这些组件的任何组合。
优先级顺序
正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。
运算符
下表从最高到最低说明了各种正则表达式运算符的优先级顺序:
运算符 | 说明 | |
\ | 转义符 | |
(), (?:), (?=), [] | 括号和中括号 | |
*, +, ?, {n}, {n,}, {n,m} | 限定符 | |
^, $, \任何元字符、任何字符 | 定位点和序列 | |
| | 替换 |
字符具有高于替换运算符的优先级,使得“m|food”匹配“m”或“food”。若要匹配“mood”或“food”,请使用括号创建子表达式,从而产生“(m|f)ood”。
普通字符
普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。
简单表达式
正则表达式的最简单形式是在搜索字符串中匹配其本身的单个普通字符。例如,单字符模式,如 A,不论出现在搜索字符串中的何处,它总是匹配字母 A。下面是一些单字符正则表达式模式的示例:
/a/
/7/
/M/
可以将许多单字符组合起来以形成大的表达式。例如,以下正则表达式组合了单字符表达式:a、7 和 M。
/a7M/
请注意,没有串联运算符。只须在一个字符后面键入另一个字符。