字符串处理是许多
程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些目的,从
Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础工具,可以用于很多类型的文本处理,如匹配,
搜索,提取和分析结构化内容.
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配
工作的类库包。它包括两个类:Pattern和Matcher.
Pattern是一个正则表达式经编译后的表现模式。在java中,通过适当命名的Pattern类可以容易确定String是否匹配某种模式.模式可以象匹配某个特定的String那样简单,也可以很复杂,需要采用分组和字符类,如空白,数字,字母或控制符.因为Java字符串基于统一字符编码(Unicode),正则表达式也适用于国际化的应用程序.
Pattern类的方法简述
方法说明
staticPetterncompile(Stringregex,intflag)编译模式,参数regex表示输入的正则表达式,flag表示模式类型(Pattern.CASE_INSENSITIVE表示不区分大小写)
Matchermatch(CharSequenceinput)获取匹配器,input时输入的待处理的字符串
staticbooleanmatches(Stringregex,CharSequenceinput)快速的匹配调用,直接根据输入的模式regex匹配input
String[]split(CharSequenceinput,intlimit)分隔字符串input,limit参数可以限制分隔的次数
Matcher一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作。
Matcher类的方法简述
方法说明
booleanmatches()对整个输入字符串进行模式匹配.
booleanlookingAt()从输入字符串的开始处进行模式匹配
booleanfind(intstart)从start处开始匹配模式
intgroupCount()返回匹配后的分组数目
StringreplaceAll(Stringreplacement)用给定的replacement全部替代匹配的部分
StringrepalceFirst(Stringreplacement)用给定的replacement替代第一次匹配的部分
MatcherappendReplacement(StringBuffersb,Stringreplacement)根据模式用replacement替换相应内容,并将匹配的结果添加到sb当前位置之后
StringBufferappendTail(StringBuffersb)将输入序列中匹配之后的末尾字串添加到sb当前位置之后.
正则表达式中常见通配符:
对于单字符串比较而言,使用正则表达式没有什么优势.Regex的真正强大之处在于体现在包括字符类和量词(*,+,?)的更复杂的模式上.
字符类包括:
\d数字
\D非数字
\w单字字符(0-9,A-Z,a-z)
\W非单字字符
\s空白(空格符,换行符,回车符,制表符)
\S非空白
[]由方括号内的一个字符
列表创建的自定义字符类
.匹配任何单个字符
下面的字符将用于控制将一个子模式应用到匹配次数的过程.
?重复前面的子模式0次到一次
*重复前面的子模式0次或多次
+重复前面的子模式一次到多次
以下是实例部分: