您的位置:首页 > 职场人生

【黑马程序员】java正则表达式学习总结

2014-06-20 22:34 513 查看
------ <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ------

1.正则表达式是一种可以用于模式匹配和替换的规范,将某个字符模式与所搜索的字符串进行匹配。

通过正则表达式操作字符串比手工编码效率高,代码也比较清晰。

2.在java中。主要用java.util.regex处理正则表达式。

(1)Pattern类:正则表达式的编译表示形式。

Pattern pat=Pattern.compile(String  )

 (2)Matcher类:通过解释Pattern对character sequence执行匹配操作的引擎。

        Matcher mat=pt.matcher(Character )

(3)使用:

 a。    while(mat.find()){
System.out.println(mat.group());
}

 find()的操作与Iterator迭代器类似,mat.reset()可以重置find()

b。Boolean b=mat.matches();完全匹配返回true

c。String retStr=mat.replaceAll(String)替换匹配结果中的某些字符串并返回结构

d。String retStr=pat.split(String)

3.正则表达式语法:

正则表达式由常规字符,字符类(一组字符),统配符以及量词组成。

(1)常规字符根据自身进行匹配。如“xy”,匹配结果 “xy”

除了字母序列外,转义字符也属于常规字符。

(2)字符类是一组字符。通过在方括号之间放置字符,可以指定字符类。

a。[xyz]匹配x或y或z

b。[^xyz]   除x,y,z以外的字符。

c。[1-9]   指定数字1到9

(3)通配符是(.),可以匹配任何字符。

(4)量词决定表达式被匹配的次数

a。+:匹配一次或多次,“x+” 匹配 "x","xx","xxx"等

b。*:匹配零次或多次

c。?:匹配零次或一次

d。{n}重复那次,如 a{4}匹配4个a

{n,}重复n次或更多次

{n,m}重复n到m次

(5)常用的符号

\s 空格字符(空格,tab,\n,换页,回车)

\S费空格字符[^\s]

\d数字[0-9]

\D非数字字符

\w字母 

\W非单词的字符

^一行的开始

\b一个单词的边界 

\B一个非单词的边界

\G前一个匹配的结束

4.这种表达式的使用:

(1)匹配电话号码:
//正则表达式表示第一位是1,第二位为3或5,结尾为9位数字的一串数字
pat= Pattern.compile("^[1][3,5]+\\d{9}");
mat = p.matcher("13812345678");
boolean b = m.matches();


(2)匹配身份证号码:
//正则表达式表示第一位是1,第二位为3或5,结尾为9位数字的一串数字
pat = Pattern.compile("\\d{15}|\\d{18}");
mat= p.matcher("020101198506020080");
boolean b= m.matches();


(3)匹配Email
pat= Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
mat = p.matcher("user@test.com");
boolean b = m.matches();


------ <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: