zoukankan      html  css  js  c++  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() + "	");
                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方法主要用于确定子串在目标字符串中的位置

  • 相关阅读:
    HDU 1950 Bridging signals(LIS)
    PKU 1094 Sorting It All Out(拓扑排序)
    中国剩余定理(孙子定理)详解
    51Nod 1079
    翻转游戏
    不构造树的情况下验证先序遍历
    图说流程管理
    从架构到流程
    POS(Plan Operation Support 和 OES(Operation Enable Support)
    流程规划方法→POS法
  • 原文地址:https://www.cnblogs.com/IvySue/p/6349512.html
Copyright © 2011-2022 走看看