模式匹配就是检索和指定模式匹配的字符串,Java提供了专门用来进行模式匹配的Pattern类和Matcher类,这些类在java.util.regex包中。
接下来我们来讲讲使用Pattern类和Matcher类的步骤,假设有字符串:
Stringinput=hello,goodmorning,thisisagoodidea;
我们想知道input从哪个位置开始至哪个位置结束曾出现了字符串good。
首先我们要建立模式对象,使用正则表达式regex做参数得到一个称为模式的Pattern类的实例pattern:
Patternpattern=Pattern.compile(regex);
例如:
Stringregex=good;pattern=Pattern.compile(regex);
模式对象是对正则表达式的封装。Pattern类调用类方法compile(String regex)返回一个模式对象,其中的参数regex是一个正则表达式,称为模式对象使用的模式。
如果参数regex指定的正则表达式有错,complie方法将抛出异常PatternSyntaxException。
Pattern类也可以调用类方法compile(String regex,int flags)返回一个Pattern对象,参数flags可以取下列有效值:
Pattern.CASE_INSENSITIVEPattern.MULTILINEPattern.DOTALLPattern.UNICODE_CASEPattern.CANON_EQ
例如:flags取值Pattern.CASE_INSENSITIVE,模式匹配时将忽略大小写。