45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:java中的正则表达式集锦

java中的正则表达式集锦

2016-09-03 14:35:20 来源:www.45fan.com 【

java中的正则表达式集锦

java中的正则表达式,揭开你神秘的面纱

 
前言
好久以来,都听各位师兄说正则表达式很重要,很有用,但是自己从来没亲自用过,好多次想系统学一学,可是又放弃了,主要因为懒,总在给自己找理由,"现在时间不够,要找出一个整块的时间系统的学一学,不要搞半拉子事情,下次再学",就这样一拖再拖,最近工作不是太忙,想抓紧学一下吧,要不还不知道拖到什么时候呢,然后就用了一个晚上的时间,学了个大概,顿时豁然开朗,感觉原来这么简单,为什么我不早点学呢?
反思一下自己,感觉自己实在太懒了,不由想起一句打油诗"明日复明日,明日何其多",呵呵,有点酸了,但是细细想来,自己最近真的很少学习,好多书没看,邮件中好多记录下来需要总结的东西没有总结,好象每天除了上班完成自己的工作之外,其他时间都是在混日子,该动起来了,2006年还有3天就过去了,我该以何种姿态迎接2007呢?看来,自己得制定一些计划了,恩,这个下次再说,今天先谈谈java中关于正则表达式的用法.
首先介绍一些正则表达式的基础知识,可能大家都已经很熟了,但是我没怎么学过,写一遍,有助于记忆.
正则表达式的常用符号:
1.句点符号
句点符号'."匹配任意符号,除了换行符.但是不管匹配什么字符,都必须存在,不能为空.如:
a.b可以匹配a b,a b,acb,a9b等
2.方括号符号
为了解决句点符号匹配范围过于广泛这一问题,你可以在方括号(“[]”)里面指定看来有意义的字符。此时,只有方括号里面指定的字符才参与匹配。也就是说,正则表达式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。但“Toon”不匹配,因为在方括号之内你只能匹配单个字符.
3.或符号
或符号"|"的基本意义就是或运算,比如想匹配abc,adc,abdc,可以利用"a(b|d|bd)c"来进行匹配
4.表示匹配次数的符号
 
表示匹配次数的符号
符号 次数
* 0次或多次
+ 一次或多次
? 0次或1次
{n} 正好n次
{n,m} n到m次之间
{n,} 大于等于n次
如:"ab*"可以匹配a,ab,abb,abbb
"ab+"可以匹配ab,abb,abbb
"ab{3}"只能匹配abbb
5.否运算符
否运算符'^"表示相反的意思,如果用在方括号内,"^"表示不想匹配的字符.如:
"a[^a-z]"可以匹配aA,a9,但是不能匹配aa,ab,ac....
6.圆括号(分组符号)
如果要把某些表达式作为一组,可以将其用括号括起来,如:
"a(b|d)+"中(b|d)作为一个整体匹配,可以匹配:abb,abd,adb....
7.其他常用符号
常用符号
符号 意义
/s 空白符(空格,tab,换行,换页,回车)
/S 非空白符([^/s])
/d 数字[0-9]
/D 非数字[^0-9]
/w 词字符[a-zA-Z_0-9]
/W 非词字符[^/w]
 
java中使用正则表达式简单示例
java中的正则表达式是在jdk1.4中引入的,主要在java.util.regex包,核心就两个类(Pattern类和Matcher类),使用特别简单,但是功能却很强大.使用方法很简单,主要就两句话,如下:
java中的正则表达式集锦Patternp=Pattern.compile("你的正则表达式");
java中的正则表达式集锦Matchermatcher
=p.matcher("要检验的字符串");
一个Pattern对象表示一个正则表达式的编译版本,静态的complie()方法将一个正则表达式字符串编译成一个Pattern对象.调用以输入字符串作为参数的Pattern.matcher()方法可以产生一个Matcher对象,利用Matcher对象可以判断各种类型的匹配是否成功或失败.
下面程序检验字符串是否符合这样的要求:
(1)总长度大于2
(2)以a开头,以b结尾
(3)字符串中都必须是字母,不能出现特殊字符和数字
java中的正则表达式集锦Patternp=Pattern.compile("a[a-zA-Z]+b");
java中的正则表达式集锦Matchermatcher
=p.matcher("abb");
java中的正则表达式集锦System.out.println(matcher.matches());
 
下面这个示例代码的功能是分解出一句话中的每个单词
java中的正则表达式集锦java中的正则表达式集锦publicString[]parse(Stringstr){
java中的正则表达式集锦ArrayListarray
=newArrayList();
java中的正则表达式集锦Patternp
=Pattern.compile("(/w|')+");
java中的正则表达式集锦Matchermatcher
=p.matcher(str);
java中的正则表达式集锦
while(matcher.find())
java中的正则表达式集锦array.add(matcher.group());
java中的正则表达式集锦String[]res
=newString[array.size()];
java中的正则表达式集锦
for(inti=0;i<array.size();i++)
java中的正则表达式集锦res[i]
=array.get(i).toString();
java中的正则表达式集锦
returnres;
java中的正则表达式集锦}
需要注意的地方
 
一些特殊符号,如"/s"在java中要这样表示://s

今天挺晚的了,好累,先写到这了啊.以后再聊这个话题,还有许多需要完善的地方.
 

本文地址:http://www.45fan.com/a/question/71736.html
Tags: 中的 表达式 Java
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部