正则语法
^(开始字符限定)
^Hh:表示以”Hh”开始的字符串,如”Hhxxx”、”Hh xxx”
$(结束字符限定)
sm:表示以”sm”结束的字符串,如”Hhhsm”
.(表示任何字符)
.:表示任何字符字符
|(或关系)
“hi|ha”:表示一个字符串有”hi”或”ha”,如”xxhixx”、”xxhaxx”
“*”(尾部字符重复)
ab*:表示字符串有一个”a”,后面跟着零个或多个“b”,如”a”、”abbb…”
+(尾部字符重复)
ab+:表示字符串有一个”a”,后面跟着一个或多个“b”,如”ab”、”abbb…”
?(尾部字符重复)
ab?:表示字符串有一个”a”,后面跟着零个或一个“b”,如”a”、”ab”
{}(限定长度)
ab{2}:表示字符串有一个”a”,后面跟着两个**”b”,如”abb”
ab{2,}:表示字符串有一个”a”,后面跟着至少两个**”b”,如”abb”,”abbb…”
ab{2,5}:表示字符串有一个”a”,后面跟着两到五个**”b”,如 “abb”,”abbbbb”
注意必须设置下限,如{0,2},而不是{,2}。
- “*” == “{0,}”
- “+” == “{1,}”
- “?” == “{0,1}”
[](限定内容)
允许内容
“[abcd]”:表示字符串包含”a”、”d”、”c”、”d”任意一个。等于”a|b|c|d”
“[a-d]”:相当于”[abcd]”
“^[a-zA-Z]”:表示已字母开头的字符串。如”a12e”
“a.[0-9]”:表示字符串有一个”a”后面跟着一个任意字符和一个数字;如”a2”
禁止内容
“%[^a-zA-Z+]%”:表示两个百分号之间不应该出现字母,如”%12%”
() 优先规则
“a(h|f)b”:表示一个字符串有”ahf”或”afb”,如”xxahfxx”、”xxafbxx”
“a(hljlf)*b”:表示字符串有一个”a”,后面接上一串”h”、”j”、”f”混合字符后面,后面接上跟上”c”,如:”asdahjffhjjhffhjjhfbsadas”
特殊匹配
\d
\d:用于匹配从0到9的数字
\w
\w:用于匹配字母,数字或下划线字符
“/^” 和 “$/” 成对使用
/^[0-9]{1,20}$/:表示是否是全由数字组成的长度为1到20的字符串
转义字符
“^.$()|*+?{\”:只当字符表示是需要在前面加上转义字符”\”
常用表达式
- “^\d+$” –> 非负整数(正整数 + 0)
- “^[0-9][1-9][0-9]$” –> 正整数
- “^((-\d+)|(0+))$” –> 非正整数(负整数 + 0)
- “^-[0-9][1-9][0-9]$” –> 负整数
- “^-?\d+$” –> 整数
- “^\d+(.\d+)?$” –> 非负浮点数(正浮点数 + 0)
- “^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))$” –> 正浮点数
- “^((-\d+(.\d+)?)|(0+(.0+)?))$” –> 非正浮点数(负浮点数 + 0)
- “^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))$” –> 负浮点数
- “^(-?\d+)(.\d+)?$” –> 浮点数
- “^[A-Za-z]+$” –> 由26个英文字母组成的字符串
- “^[A-Za-z0-9]+$” –> 由数字和26个英文字母组成的字符串
- “^\w+$” –> 由数字、26个英文字母或者下划线组成的字符串
- “^[\w-]+(.[\w-]+)@[\w-]+(.[\w-]+)+$” –> *email地址
- “^[a-zA-z]+://(\w+(-\w+))(.(\w+(-\w+)))(\?\S)?$” –> URL
- “/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-((0-2)|(3[0|1]))$/” –> 年-月-日
- “/^((0([1-9]{1}))|(1[1|2]))/((0-2)|(3[0|1]))/(d{2}|d{4})$/” –> 月/日/年
- “^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$” –> Emil
- “(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?” –> 电话号码
- “^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$” –> IP地址
- “^([0-9A-F]{2})(-[0-9A-F]{2}){5}$” –> MAC地址的正则表达式
- “^[-+]?\d+(.\d+)?$” –> 值类型正则表达式