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

java正则中的requireEnd和hitEnd

时间:2017-06-17 11:09:32      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:输入数据   导致   null   pil   bool   style   数据   ops   logs   

  

package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class main
{

    // hitEnd(),结果为true,末尾输入更多数据,是否改变匹配结果 1.true变false 2.false变true 3.匹配文本变化
    // 返回false,匹配结果已经确定,包括为本确定
    // requireEnd(),只有匹配成功有意义,为true,表示更多输入数据可能会导致失败,false 输入更多,可能改变匹配文本,但不会失败
    public static void main(String[] args)
    {
        String[] matcherStrs =
        { "1234", "1234.>.567", ">", ">.567", ">=", ">=.567", "oops" };
        Pattern pattern = Pattern.compile("\\d+\\b|[><]=?");
        Matcher m = null;
        for (String matcherStr : matcherStrs)
        {
            m = pattern.matcher(matcherStr);
            boolean find_result = true;
            if (find_result = m.find())
            {
                System.out.println(String.format("正则是%s,匹配文本是%s,匹配是否成功:%s,匹配结果是%s", m.pattern(), matcherStr,
                        find_result, find_result ? m.group() : "匹配失败"));
                System.out.println("hitEnd() is " + m.hitEnd());
                System.out.println("requireEnd() is " + m.requireEnd());

            }
        }

    }
}

结果分析:

正则是\d+\b|[><]=?,匹配文本是1234,匹配是否成功:true,匹配结果是1234
hitEnd() is true//如果结尾加5,文本变化,加a,匹配失败,所以hitEnd为true
requireEnd() is true//加a,导致失败
正则是\d+\b|[><]=?,匹配文本是1234.>.567,匹配是否成功:true,匹配结果是1234
hitEnd() is false //1234已经确定了,和结尾无关,false
requireEnd() is false //不会导致失败
正则是\d+\b|[><]=?,匹配文本是>,匹配是否成功:true,匹配结果是>
hitEnd() is true //加=,匹配文本变化
requireEnd() is false//加=文本变化,但不会失败,所以false
正则是\d+\b|[><]=?,匹配文本是>.567,匹配是否成功:true,匹配结果是>
hitEnd() is false //>不是末尾,已经确定成功
requireEnd() is false//确定成功
正则是\d+\b|[><]=?,匹配文本是>=,匹配是否成功:true,匹配结果是>=
hitEnd() is false //?是0-1,不会改变结果
requireEnd() is false//不会失败
正则是\d+\b|[><]=?,匹配文本是>=.567,匹配是否成功:true,匹配结果是>=
hitEnd() is false //不在结尾
requireEnd() is false //不在结尾

首先看匹配结果是否在结尾

 

java正则中的requireEnd和hitEnd

标签:输入数据   导致   null   pil   bool   style   数据   ops   logs   

原文地址:http://www.cnblogs.com/ptqueen/p/7039522.html

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