码迷,mamicode.com
首页 > 编程语言 > 详细

《疯狂Java讲义》(二十二)---- 正则表达式

时间:2017-01-25 16:33:46      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:span   线程   public   out   start   []   线程安全   group   位置   

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讲义》(二十二)---- 正则表达式

标签:span   线程   public   out   start   []   线程安全   group   位置   

原文地址:http://www.cnblogs.com/IvySue/p/6349512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!