Pattern类与Matcher类

Java提供了专门用来进行模式匹配的Pattern类和Matcher类,这些类在java.util.regex包中

//模式匹配就是检索和指定模式匹配的字符串

1.通过Pattern类建立模式对象:
1.compile(String regex) throws PatternSyntaxException

Parrern类调用此类方法返回一个模式对象,参数regex指定的正则表达式有错则抛出异常;

如:Pattern pattern=Pattern.compile("good");

2.compile(String regex,int flags)

返回一个Pattern对象,参数flags可取以下有效值:

Pattern.CASE_INSENSITIVE(忽略大小写)

Pattern.MULTILINE(表达式’\^’和’$’分别匹配一行的开始和结束)

Pattern.DOTALL(表达式’.’可以匹配任意字符,包括表示一行的结束符)

Pattern.UNICODE_CASE(对Unicode字符进行大小写不明感的匹配,默认情况下大小写不敏感的匹配只适用于US-ASCII字符集)

Pattern.CANON_EQ(表达式”a\u030A”会匹配”?”,默认情况下,不考虑”规范相等性)

2.通过Matcher类得到匹配对象:

matcher(CharSequence input)

模式对象调用matcher方法返回一个Matcher对象,参数input为要检索的字符串;

//CharSequence是接口(String类和StringBuffer类都实现了该CharSequence接口)

Matcher matcher=pattern.matcher(input)

匹配对象常用方法:

1.public int start()

返回第一个参数regex开始的位置;

2.public int end()

返回第一个参数regex结束的位置;

3.public String group()

返回检索到的字符串;

4.public boolean find()

寻找inputregex匹配的下一子序列,如果成功找到返回true,否则返回false

5.public boolean find(int start)

判断input从参数start指定位置开始是否有和regex匹配的子序列;

6.public boolean matches()

判断input是否完全和regex匹配;

7.public boolean lookingAt()

判断从input的开始位置是否有和regex匹配的子序列;

8.public String replaceAll(String replacement)

input中与模式regex匹配的子字符串全部替换为参数replacement指定的字符串,并返回替换后的字符串(input没有变化);

9.public String replaceFirst(String replacement)

input中与模式regex第一个匹配的子字符串替换为参数replacement指定的字符串,并返回替换后的字符串(input没有变化);

猜你喜欢

转载自www.cnblogs.com/rongbin/p/9371593.html
今日推荐