正则表达式:
就是利用子表达式进行拼接的一串格式序列.
1. [a-zA-Z0-9]是字符数数组,表示在字符集内的任一匹配的字符.
注意:[./_?*] 在字符数组中不再是元数组,而是代表普通的字符(. _ / ? *)
[^] 代表 []的补集合
[123] = (1|2|3) ,其中 | 代表或操作
[ae] = (a|e) ,两者的区别在与[ae]是匹配a,e中任意的一个字符,但是(a|e)代表a或者e的其中一个,如果是(ap|ae)则是匹配ap或ae中的一个
2. 元字符(特殊字符)列表(\ + 普通字符 组合成为有特殊功能的字符串)
\ 转义字符将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符
^ 放在regx开头,代表语句的开始,在字符组中代表 "非"的含义
$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置
\w 匹配包括下划线的任何单词字符,等价于 [A-Za-z0-9_]
\W 匹配非英文大小写字母与阿拉伯数字以及_下划线的特殊字符
\b 匹配所有的边界
\B 匹配非边界
\d 匹配所有的十进制的数字,等价于 [0-9]
\D 匹配一个非数字字符。等价于 [^0-9]
\f 匹配一个换页符,等价于 \x0c 和 \cL
\n 匹配一个换行符,等价于 \x0a 和 \cJ
\r 匹配一个回车符,等价于 \x0d 和 \cM
\t 匹配一个TAB符,等价于 \x09 和 \cI
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]
3. 元字符(重复字符)列表
* 匹配前面的子表达式0次或n次 = {0,}
? 匹配前面的子表达式0次或1次 = {0,1}
+ 匹配前面的子表达式1次或n次 = {1,}
{m,n} 匹配前面的子表达式至少m次,最多n次
4. 通用的匹配模式示例
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$