一、正则表达式通配符
* : 前一个字符匹配0次或任意多次
. :匹配除了换行符以外任意一个字符
^ : 匹配行数。例如:^helloworld会匹配以hellworld开头的行
$ :匹配行尾。例如:helloworld$会匹配以helloworld结尾的行
[] :匹配中括号里的任意指定的一个字符,但只匹配一个字符
[^] :匹配除中括号以外的任意一个字符
\ :转义符,取消特殊含义
{n} :表示其前面的字符恰好出现n次
{n,} :表示其前面的字符出现不小于n次
{n,m} :表示其前面的字符至少出现n次,最多出现m次
二、检验数字的正则表达式
数字:^[0-9]*$
n位数字: ^\d{n}$
至少n位的数字: ^\d{n,}$
m-n位的数字: ^\d{m,n}$
零和非零开头的数字: ^(0|[1-9][0-9]*)$
有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
非零开头的最多两位小数的数字: ^([1-9][0-9]*)+(.[0-9]{1,2})?$
正数、负数、和小数: ^(\-|\+)?\d+(\.\d+)?$
有两位小数的正实数: ^[0-9]+(.[0-9]{2})?$
带1-2位小数的正数或负数: ^(\-)?\d+(\.\d{1,2})?$
非零的正整数: ^[1-9]\d*$
非零的负整数: ^\-[1-9][]0-9"*$
非正整数: ^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
非负整数: ^\d+$ 或 ^[1-9]\d*|0$
非正浮点数: ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
非负浮点数: ^\d+(\.\d+)?$
正浮点数: ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
负浮点数: ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
浮点数: ^(-?\d+)(\.\d+)?$
三、校验字符的表达式
英文和数字: ^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
由26个英文字母组成的字符串: ^[A-Za-z]+$
由26个大写英文字母组成的字符串: ^[A-Z]+$
由26个小写英文字母组成的字符串: ^[a-z]+$
由数字和26个英文字母组成的字符串: ^[A-Za-z0-9]+$
由数字、26个英文字母或者下划线组成的字符串: ^\w+$ 或 ^\w{3,20}$
长度为3-20的所有字符: ^.{3,20}$
汉字: ^[\u4e00-\u9fa5]{0,}$
中文、英文、数字包括下划线: ^[\u4E00-\u9FA5A-Za-z0-9_]+$
中文、英文、数字但不包括下划线等符号: ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
11 可以输入含有^%&',;=?$\"等字符: [^%&',;=?$\x22]+
12 禁止输入含有~的字符: [^~\x22]+
四、其他类型的表达式
手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
身份证号(15位、18位数字):^\d{15}|\d{18}$
Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$
域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
日期格式:^\d{4}-\d{1,2}-\d{1,2}
xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
腾讯QQ号(腾讯QQ号从10000开始):[1-9][0-9]{4,}
中国邮政编码(中国邮政编码为6位数字):[1-9]\d{5}(?!\d)
空白行的正则表达式(可以用来删除空白行):\n\s*\r
IP地址:\d+\.\d+\.\d+\.\d+