语法整理:
1. 开始:^ 结束:$
^start : 以start开始的字符串
end$:以end结尾的字符串
^start-end$:start-end
start-end:任何包含start-end的字符串
2. *:0次或n次 +:1次或n次 ?:0次或1次 {m[,n]}:表示重复的范围
ab*:表示一个字符串有一个a后面跟着零个或若干个b。("a", "ab", "abbb",……)
ab+:表示一个字符串有一个a后面跟着至少一个b或者更多
ab?:表示一个字符串有一个a后面跟着零个或者一个b
a?b+$":表示在字符串的末尾有零个或一个a跟着一个或多个b
ab{3}:表示一个字符串有一个a跟着3个b("abbb")
ab{3,}:表示一个字符串有一个a跟着至少3个b
ab{3,5}:表示一个字符串有一个a跟着3到5个b
3. | :或 . : 可替代任何字符 [] : 将[]里字符类似用|组合
a¦b:表示一个字符串里有"a"或者"b"
(b¦cd)ef:表示"bef"或"cdef"
(a¦b)*c:表示一串"a""b"混合的字符串后面跟一个"c"
a.[0-9]:表示一个字符串有一个"a"后面跟着一个任意字符和一个数字
^.{5}$:表示有任意三个字符的字符串(长度为5个字符)
注:①方括号里的^表示不应该出现的字符 如:"ss[^a-z]dd"表示ss和dd之间不能出现小写字母
②在方括号外使用 ^.$()¦*+?{\ 这些字符的时候需要用转义字符"\"
4. 常见正则:
数字:^[0-9]*$
n位的数字:^\d{n}$
至少n位的数字:^\d{n,}$
m-n位的数字:^\d{m,n}$
零和非零开头的数字:^(0|[1-9][0-9]*)$
非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
非零的正整数:^\+?[1-9]\d*$
非零的负整数:^-[1-9]\d*$
非负整数:^\d+$
非正整数:^-[1-9]\d*|0$
非负浮点数:^\d+(\.\d+)?$
非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$
正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
浮点数:^(-?\d+)(\.\d+)?$
汉字:^[\u4e00-\u9fa5]$
英文和数字:^[A-Za-z0-9]+$
长度为3-20的所有字符:^.{3,20}$
由数字、26个英文字母或者下划线组成的字符串:^\w+$
中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$
Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
网址:[a-zA-z]+://[^\s]* 或 ^https?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
手机号码:^(1[3|4|5|8])\d{9}$
国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
日期格式: yyy-MM-dd : ^\d{4}-\d{1,2}-\d{1,2}$ hhmmss : ^([0-1]\d|2[0-3])[0-5]\d[0-5]\d$
钱的输入格式: ^([1-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
双字节字符:[^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))
空白行的正则表达式:\n\s*\r
HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />
首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$)
QQ号:[1-9][0-9]{4,} (QQ号从10000开始)
中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)
IP地址:\d+\.\d+\.\d+\.\d+
经度:[\-\+]?(0?\d{1,2}\.\d{1,8}|1[0-7]?\d{1}\.\d{1,8}|180\.0{1,8}) (东西经分正负,0~180,精确到小数点后8位)
纬度:[\-\+]?([0-8]?\d{1}\.\d{1,8}|90\.0{1,8}) (南北纬分正负,0~90,精确到小数点后8位)