• Java中正则Matcher类的matches()、lookAt()和find()的差别


    參考博文地址:http://www.oseye.net/user/kevin/blog/170

    1、matcher():仅仅有在整个字符串全然匹配才返回true,否则返回false。

    可是假设部分匹配成功。匹配的位置将移动到下次匹配的位置

    2、lookingAt():总是从第一个字符開始匹配。不管匹配成功与否,都不会再继续向下匹配

    3、find():部分匹配,假设匹配成功。返回true,匹配的位置移动到下次匹配的位置。

    package com.qunar.fresh.junweiyu.Test;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    
    public class Test_regx {
        public static void main(String[] args){
            Pattern pattern = Pattern.compile("\d{3,5}");
            String s = "123-34345-234-00";
            Matcher matcher = pattern.matcher(s);
    
            /*matches:整个匹配,仅仅有整个字符序列全然匹配成功,才返回True,否则返回False。

    但假设前部分匹配成功,将移动下次匹配的位置*/ System.out.println(matcher.matches()); /*false*/ /*測试匹配的位置*/ matcher.find(); System.out.println(matcher.start()); /*4*/ /*重置匹配的位置*/ matcher.reset(); /*find:部分匹配,从当前位置開始匹配,找到一个匹配的子串,将移动下次匹配的位置*/ System.out.println(matcher.find());/*true*/ System.out.println(matcher.group() + "---" + matcher.start());/*123---0*/ System.out.println(matcher.find());/*true*/ System.out.println(matcher.group() + "---" + matcher.start());/*34345---4*/ /*lookingAt:部分匹配。总是从第一个字符进行匹配,匹配成功了不再继续匹配。匹配失败了,也不继续匹配。

    */ System.out.println(matcher.lookingAt());/*true*/ System.out.println(matcher.group() + "---" + matcher.start());/*123---0*/ System.out.println(matcher.lookingAt());/*true*/ System.out.println(matcher.group() + "---" + matcher.start());/*123-0*/ } }



  • 相关阅读:
    POJ 3041 Asteroids 最小点覆盖 == 二分图的最大匹配
    POJ 3083 Children of the Candy Corn bfs和dfs
    POJ 2049 Finding Nemo bfs 建图很难。。
    POJ 2513 Colored Sticks 字典树、并查集、欧拉通路
    POJ 1013 Counterfeit Dollar 集合上的位运算
    POJ 2965 The Pilots Brothers' refrigerator 位运算枚举
    无聊拿socket写的100以内的加法考试。。。
    POJ 1753 Flip Game
    初学socket,c语言写的简单局域网聊天
    汇编语言 复习 第十一章 标志寄存器
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6865697.html
Copyright © 2020-2023  润新知