正则婊达式

正则表达式

描述一段规则 看我们现有的东西是否匹配这段规则 (正则表达式不属于JAVA )

pattern和matcher

compile(String regex)

将给定的正则表达式编译到模式中。

Pattern p = Pattern.compile("1[3578]\\d{9}");
Matcher m = p.matcher("13999988888");
System.out.println(m.matches());

^ 匹配字符串的开始

$ 匹配字符串的结束

\s 任何空白字符

\S 任何非空白字符

\d 匹配一个数字字符,等价于[0-9]

\D 除了数字之外的任何字符,等价于[^0-9]

\w 匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_]

\W 任何非单字字符,等价于[^a-zA-z0-9_]

. 除了换行符之外的任意字符

{n} 匹配前一项n次

{n,} 匹配前一项n次,或者多次

{n,m} 匹配前一项至少n次,但是不能超过m次

* 匹配前一项0次或多次,等价于{0,}

+ 匹配前一项1次或多次,等价于{1,}

? 匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1}

x|y

匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。

[xyz]

字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。

[a-z]

字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。 注意:只有连字符在字符组内部时,并且出现在两个字符之间时,才能表示字符的范围; 如果出字符组的开头,则只能表示连字符本身.

(pattern)

匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“(”或“)”。

邮箱

Pattern p = Pattern.compile("\\w{5,15}@(qq|163|126|gmail).(com|cn)");
Matcher m = p.matcher("lxhxqx9109@163.com");
System.out.println(m.matches());

身份证 //1920年1月1日-2016年11月24日

Pattern p = Pattern.compile("\\d{6}((19[2-9][0-9]|20[0-1][0-5])((01|03|05|07|08|10|12)([1-2][0-9]|0[1-9]|3[0-1])|(04|06|09|11)([1-2][0-9]|0[1-9])|02(1[0-9]|0[1-9]|2[0-8]))|2016((01|03|05|07|08|10)([1-2][0-9]|0[1-9]|3[0-1])|(04|06|09)([1-2][0-9]|0[1-9])|02(1[0-9]|0[1-9]|2[0-8])|11(0[1-9]|1[0-9]|2[0-4])))\\d{3}([0-9xX])");
Matcher m = p.matcher("51060320161032293x");
System.out.println(m.matches());
posted on 2016-11-24 21:30  璨啊璨  阅读(170)  评论(0编辑  收藏  举报