首页 > 代码库 > 《疯狂Java讲义》(二十二)---- 正则表达式
《疯狂Java讲义》(二十二)---- 正则表达式
Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaab"); boolean b = m.matches(); //b = true
Pattern对象可以多次重复使用。如果某个正则表达式仅需使用一次,则可以直接使用pattern类的静态matches方法:
boolean b = Pattern.matches("a*b", "aaaab");
Pattern是不可变类,可供多个并发线程安全使用。
Matcher类例子:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class FindGroupDemo { public static void main(String[] args) { Matcher m = Pattern.compile("\\w+").matcher("Java is very easy"); while(m.find()) { System.out.println(m.group()); } int i = 0; while(m.find(i)) { System.out.print(m.group() + "\t"); i++; } } }
find()方法一次查找字符串中与Pattern匹配的子串,一旦找到对应的子串,下次调用find()方法时将接着向下查找。除此之外,find()还可以穿入int类型的参数,find()方法会从该int索引处向下搜索。
import java.util.regex.Matcher; import java.util.regex.Pattern; public class StartEndDemo { public static void main(String[] args) { String regStr = "Java is very easy!"; System.out.println("target string : " + regStr); Matcher m = Pattern.compile("\\w+").matcher(regStr); while(m.find()) { System.out.println(m.group() + " start : " + m.start() + " ,end : " + m.end()); } } }
start和end方法主要用于确定子串在目标字符串中的位置
《疯狂Java讲义》(二十二)---- 正则表达式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。