说到Java的正则表达式,对于字符串的搜索,匹配,替换有意想不到的效果,在编程中对于字体串格式的判断十分有用,比如,邮箱格式的,电话号码的格式,以及中文的限定等。
做为程序员必备计能之一,在这里结合网络中收集的资料做些总结,以备后用。
对于java中正则表达式的实现,主要涉及到下面几条语句
Pattern p=Pattern.compile("表达式");
Matcher m=p.matcher("代测字符串");
boolean b=m.mathes();
如果匹配则b为true,否则为false;
在这里举几个例子:
1、\\d{15}|\\d{18} 双斜杠表示转义构造(原理同转义字符),即15个0-9数字或者是18个0-9的数字组成,此表达式可用于检测身份证长度
2、\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)* \\w+表示1个或多个[a-zA-Z_0-9],后面的()*表示零次或多次的[-+.]\\w。后面同理。所以 aa.aa@aa.aa.aa也是对的。
jaa.bb@cc-dd.com-ee,有4个group 分别为jaa.bb@cc-dd.com-ee、.bb、-dd、-ee;此可用于检测邮箱的格式。
,[abc]+表示一次或者多次的 a 或 b 或 c,(abc)+表示一次或者多次的"abc"组。
3、有几个括号,则表示有几个组,每一个组存一个括号内的内容。
4、//w表示一个字母,而//w+表示1个或多个单词。