Regular Expression(正则表达式) 简称Regex
在Javascript中
    g(global)表示全局  i表示不区分大小写
    .可以匹配任何一个单位的字符
    []用于定义字符集合 ^取非
元字符
| 元字符 | 解释说明 | 
|---|---|
| [\b] | Backspace键(退格) | 
| \n | 换行符 | 
| \f | 换页符 | 
| \r | 回车符 | 
| \t | 制表符(tab) | 
| \v | 垂直制表符 | 
| \r\n | 回车+换行 许多操作系统以此为行结束,Unix与Linux以\n作为行结束 | 
| \d | 任何一个数字字符 [0-9] | 
| \D | 任何一个非数字字符 0-9 | 
| \w | [a-zA-Z0-9_] | 
| \W | a-zA-Z0-9_ | 
| \s | [\f\n\r\t\v] 任一一个空白字符 | 
| \S | \f\n\r\t\v 任一一个非空白字符 | 
| \xXX | XX:表示十六进制数 | 
| \0XX | XX:表示八进制数 | 
POSIX字符类 javascript不支持
| POSIX字符类 | 解释说明 | 
|---|---|
| [:alnum:] | [\w^_] | 
| [:upper:] | [A-Z] | 
| [:alpha:] | [a-zA-Z] | 
| [:blank:] | [ \t] 注意:这里包含空格 | 
| [:xdigit:] | 任何一个十六进制数 [a-fA-F0-9] | 
| [:cntrl:] | ASCII控制字符 0-31加上127 | 
| [:digit:] | \d | 
| [:graph:] | [:print:]去除空格 | 
| [:lower:] | [a-z] | 
| [:print:] | 任何一个可打印字符 | 
| [:punct:] | 既不属于[:alnum:]也不属于[:cntrl:]的字符 | 
| [:space:] | [\f\r\n\t\v ] 注意:这里包含空格 | 
| 符号 | 解释说明 | 
|---|---|
| + | 一次或多次重复 | 
| +? | 懒惰型 | 
| * | 零次或多次重复 | 
| *? | 懒惰型 | 
| ? | 零次或一次出现 | 
| {n} | 重复n次 | 
| {m,n} | 至少m次,至多n次 | 
| {m,} | 至少出现m次 | 
| {m,}? | 懒惰型 | 
| \b | 一个单词的开头或结尾 b:boundary | 
| \B | 不匹配一个单词边界 | 
| ^ | 字符串开头 $ 字符串结尾 | 
| (?m) | 置于开头,用于开启分行匹配模式 multline mode 注意:有的语言不支持 | 
| (xx) | 子表达式,视为独立元素 | 
回溯引用 backreference
替换模式下Javascript使用$代替\
| 符号 | 解释说明 | 
|---|---|
| \1,\2……\n | 第1个表达式,第2个表达式…….第n个表达式 | 
| \0 | 代表整个正则表达式 | 
| \E | 结束 \L或\U转换 | 
| \l | 把下一个字符转换为小写 | 
| \L | 把\L到\E之间全部转换为小写 | 
| \u | 把下一个字符转换为大写 | 
| \U | 把\U到\E之间全部转换为大写 | 
注意:
1、  Java、Perl、PHP、.NET 支持向后查找
2、  Javascript、ColdFusion 不支持向后查找
向前查找:(?=x)   匹配但不消费x,即结果不包括x
 例 (?=:)   原字符串 https:     匹配结果 http
向后查找:(?<=x) 匹配但不消费x,即结果不包括x
    例 (?<=$)   原字符串 $400     匹配结果 400
注意:向前查找可以任意长度(可以使用.+)  向后查找的长度是固定的
    (?=)     正向前查找          (?<=)    正向后查找
    (?!)       负向前查找          (?<!)         负向后查找  
Mysql JAVA1.4不支持条件处理
(?(backreference)true-regex)
(?(backreference)true-regex|false-regex)
Backreference满足时,匹配true-regex 否则匹配false-regex