正则通常由两部分组成:元字符+限定符
元字符:代表能代表哪些字符
限定符:修饰前面元字符数量,只对他前面一个元字符起作用
元字符
意义
.
匹配除换行符以外的任意字符
\.
表示点,需转义
\n
换行
\w
匹配字母或数字或下划线或汉字
\s
匹配任意的空白符(包括空格、换行、回车等)
\d
匹配数字
\b
匹配单词的开始或结束
^
匹配字符串的开头
$
匹配字符串的结束
[a-z]
小写英文字母
[0-9]
数字
[asd]
asd三个字符里取任意一个
[\u4e00-\u9fa5]
汉字
[^X]
取所有,除去X
限定符
意义
*
重复0次或更多次(0个以上)
+
重复1次或更多次(1个以上)
?
重复0次或1次(0个或1个)
{n}
重复n次数
{n,m}
重复n到m次
{n,}
重复n次以上
*?
重复任意次,但尽可能少重复
+?
重复1次或更多次,但尽可能少重复
??
??重复0次或更多次,但尽可能少重复
① a*
② a+
③ a?
④ a*?
⑤ a+?
⑥ a??
[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}
取出所有除去竖划线|如”1|af516ui-f”,取出2处匹配,匹配结果为1,af516ui-f
匹配所有
可参考http://tool.oschina.net/regex/#
①邮箱
^[a-z0-9A-Z]+[- | a-z0-9A-Z . _]+@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-z]{2,}$
②匹配url
[a-zA-z]+://[^\s]*
③匹配(年-月-日)日期格式
([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))
④匹配空白行
\n\s*\r