A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭孟涛 高级黑马   /  2013-1-26 05:45  /  2110 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

你可以从比较简单的东西入手学习正则表达式。要想全面地掌握怎样构建正则表达式,可以去看JDK 文档的java.util.regex 的Pattern 类的文档。
字符
B字符B
\xhh16进制值0xhh 所表示的字符
\uhhhh16进制值0xhhhh 所表示的Unicode字符
\tTab
\n换行符
\r回车符
\f换页符
\eEscape
正则表达式的强大体现在它能定义字符集(character class)。下面是一些最常见的字符集及其定义的方式,此外还有一些预定义的字符集:
字符集
.表示任意一个字符
[abc]表示字符a ,b ,c 中的任意一个(与a|b|c 相同)
[^abc]除a ,b ,c 之外的任意一个字符(否定)
[a-zA-Z]从a 到z 或A 到Z 当中的任意一个字符(范围)
[abc[hij]]a,b,c,h,i,j 中的任意一个字符(与a|b|c|h|i|j 相同)(并集)
[a-z&&[hij]]h,i,j 中的一个(交集)
\s空格字符(空格键, tab, 换行, 换页, 回车)
\S非空格字符([^\s] )
\d一个数字,也就是[0-9]
\D一个非数字的字符,也就是[^0-9]
\w一个单词字符(word character),即[a-zA-Z_0-9]
\W一个非单词的字符,[^\w]
如果你用过其它语言的正则表达式,那么你一眼就能看出反斜杠的与众不同。在其它语言里,"\\ "的意思是"我只是要在正则表达式里插入一个反斜杠。没什么特别的意思。"但是在Java里,"\\ "的意思是"我要插入一个正则表达式的反斜杠,所以跟在它后面的那个字符的意思就变了。"举例来说,如果你想表示一个或更多的"单词字符",那么这个正则表达式就应该是"\\w+ "。如果你要插入一个反斜杠,那就得用"\\\\ "。不过像换行,跳格之类的还是只用一根反斜杠:"\n\t"。
这里只给你讲一个例子;你应该JDK 文档的java.util.regex.Pattern 加到收藏夹里,这样就能很容易地找到各种正则表达式的模式了。

原来\t \n这些是正则表达式里面

matches方法可以判断当前的字符串是否匹配给定的正则表达式。如果匹配,返回true,否则,返回false。matches方法的定义如下:

public boolean matches(String regex)

如上面给出的正则表达式我们可以用如下程序验证。


String[] ss = new String[]{"a98b", "c0912d",  "c10b",  "a12345678d",  "ab"};
for(String s: ss)
    System.out.println(s.matches("[ac]\\d*[bd]"));



输出结果:


true

评分

参与人数 1技术分 +1 收起 理由
admin + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
值得学习 ing!
回复 使用道具 举报
学习了。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马