java正则表达式Pattern和Matcher类

来源:互联网 发布:出国要关闭数据流量吗 编辑:程序博客网 时间:2024/04/28 10:50

Pattern类

例子:

Pattern pattern = Pattern.compile("[,\\s]+");
String[] result = pattern.split("one two

three,four,five,six");
for(int i=0;i<result.length;i++){
System.out.println(result[i]);
}

输出结果为:
one
two
three
four
five
six

Pattern类的静态方法compile用来编译正则表达式,在此[,\\s]+表

示若干个“,”或者若干个空格匹配
split方法使用正则匹配将字符切割成各子串并返回


Matcher类:
Matcher的获得是通过Pattern.matcher(CharSequence cs);

常用方法:

matches()判断整个输入串是否匹配,整个匹配则返回true

例:
String str ="love";
Pattern parrern = Pattern.compile("love");
Matcher matcher = pattern.matcher(str);
System.out.println(matcher.matches()); //输出true

lookingAt()从头开始寻找,找到匹配则返回true

例:
String str ="love you";
Pattern parrern = Pattern.compile("love");
Matcher matcher = pattern.matcher(str);
System.out.println(matcher.lookingAt()); //输出true

find()扫描输入串,寻找下一个匹配子串,存在则返回true

例:
Pattern parrern = Pattern.compile("you");
Matcher matcher = pattern.matcher("love you;love you;love

you")
StringBuffer str = new StringBuffer();
boolean find = matcher.find();
//使用循环将句子里所有的you找出并替换再将内容加到str里
while(find){
matcher.appendReplacement(str,"me")
find = matcher.find();
}
matcher.appendTail(str); //最后调用appendTail()方法将最后一次匹配后的剩余字符串加到str里
System.out.println(str.toString());

上例是将所有的“you”替换成“me”


其它方法

String replaceAll(String replacement)
将目标字符串里与既有模式相匹配的子串全部替换为指定的字符串.
String replaceFirst(String replacement)
将目标字符串里第一个与既有模式相匹配的子串替换为指定的字符串。

appendReplacement(StringBuffer sb, String replacement) 将当前匹配子串替换为指定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里,而 appendTail(StringBuffer sb) 方法则将最后一次匹配工作后剩余的字符串添加到一个StringBuffer对象里。
原创粉丝点击