正则表达式
一、常用的特殊字符
1> \ 做为转义,即通常在 "\" 后面的字符不按原来的意义解释, 如/b/匹配字符 "b" ,当 b 前面家里反斜杠后/\b/,转义为匹配一个单词的边界。
-或-
对正则表达式功能字符的还原,如 "*" 匹配他前面原字符 0 次或多次, /a*/ 将匹配 a,aa,aaa,加了"\"后,/a\*/将只匹配 "a*"。
2> ^ 匹配一个输入或一行的开头,/^a/匹配 "an A" , 而不匹配 "An a"
3> $ 匹配一个输入或一行的结尾, /a$/匹配 "An a", 而不匹配"an A"
4> * 匹配前面元字符0次或多次, /ba*/ 将匹配 b,ba,baa,baaa
5> + 匹配前面元字符1次或多次,/ba+/将匹配 ba,baa,baaa
6> ? 匹配前面元字符0次或1次,/ba?/将匹配b,ba
7> (x) 匹配x保存x在名为$1~$9的变量中
8> x|y 匹配 x 或 y
9> {n} 精确匹配n次
10> {n,} 匹配n次以上
11> {n,m}匹配n-m次
12> [xyz]字符集(character set),匹配这个集合中的任意一份字符(或元字符)
13> [^xyz] 不匹配这个集合中的任何一个字符
14> [\b] 匹配一个退格符
15> \b 匹配一个单词的边界
16> \B 匹配一个单词的非边界
17> \cX 这里,X是一个控制符,/\cM/匹配Ctrl-M
18> \d 匹配一个字数字符,/\d/ = /[0-9]/
19> \D 匹配一个非字数字符,/\D/ = /[^0-9]/
20> \n 匹配换行符
21> \r 匹配一个回车符
22> \s 匹配一个空白字符,包括\n,\r,\f,\t,\v等
23> \S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/
24> \t 匹配一个制表符
25> \v 匹配一个重直制表符
26> \w 匹配一个可以组成单词的字符,包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
27> \W 匹配一份不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]
二、 常用的正则表达式
1> "^\d+$" //非负整数(正整数 + 0)
2> "^[0-9]*[1-9][0-9]*$" //正整数
3> "^((-\d+)|(0+))$" //非正整数 (负整数 + 0)
4> "^-[0-9]*[1-9][0-9]*$" //负整数
5> "^-?\d+$" //整数
6> "^\d+(\.\d+)?$" //非负数 (正整数+正浮点数+0)
7> "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正数
8> "^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正数(负数 + 0)
9> "^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.{0-9}+)|([0-9]*[1-9][0-9]*)))$" //负数
10> "^(-?\d+)(\.\d+)?$" //实数
11> "^[A-Za-z]$" //由26个英文字母组成的字符串
12> "^[A-Z]+$" //由26个英文字母的大写组成的字符串
13> "^[a-z]+$" //由26个英文字母的小写组成的字符串
14> "^[A-Za-z0-9]+$" //由数字、26个英文字母或者下划线组成的字符串
15> "^\w+$" //由数字、26个英文字母或下划线组成的字符串
16> "^[a-zA-Z0-9]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址
17> "(13)[0-9]{9}|(147)[0-9]{8}|(15)[0,1,2,3,5,6,7,8,9]{1}[0-9]{8}|(18)[0,2,5,6,7,8,9]{1}[0-9]{8}$" //手机号码
18> "^[\w|@|!|&|*|#|$|^|?|!|~|+|=|-|\.|,]{6,18}$" //密码6-18位。包括数字字母或符号
19> "^[\u4e00-\u9fa5]{2,4}$" //中文名字,2-4个字
20> "^[1-9]{1}[0-9]{14}$|^[1-9]{1}[0-9]{16}([0-9]|[xX])$" //身份证
21> "^[1-9][0-9]{4,}$" //匹配QQ号
22> "[1-9]\d{5}(?!\d)" //匹配中国邮政编码