• 正则表达式


    正则表达式:.匹配字符串.

    String regex = "\s+(\w+)\s+(\d+)\s+.+";//分组匹配
    		String str = " 100000000001 13357725855                 Aug 17 2014  7:55PM 综治e通组合-2014        ";
    		Pattern p = Pattern.compile(regex);
    		Matcher m = p.matcher(str);
    		System.out.println("length:" + str.length());
    		System.out.println(m.matches());
    //		System.out.println(m.find());
    		System.out.println(m.group());
    		System.out.println("start:" + m.start());
    		System.out.println("end:" + m.end());
    

    Matcher类:

    matches()方法:尝试将整个区域与模式匹配(API)

      即使用正则表达式匹配整个字符串。如果匹配成功可以

      start()获取匹配到字符串的开始索引

      end()方法获取匹配到字符串结束索引

      group()方法获取匹配到的字符串

    因为matches()方法是对整个字符串匹配,因此start索引为0,end索引为length-1,group则是整个字符串

    find()方法:尝试查找与该模式匹配的输入序列的下一个子序列(API)

      此方法从匹配器区域的开头开始,如果该方法的前一次调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。 

      find方法是从整个字符串索引0开始,查找与正则表达式匹配的子字符串。

    总结:

    group()方法返回上次匹配到的字符串,因此没有调用matches()方法或是find()方法会报异常。

    上述实例:

    匹配时字符串时,类似游标在字符串上移动。调用matches或是find后,如有匹配到的结果,游标移动到匹配到字符串的结尾

    regex完全匹配字符串str,调用find()和matches()都是匹配检测,匹配完整字符串。

    调用matches返回true,再调用find方法返回false,因为游标已经移动到字符串结尾

    开发建议:

    正则表达式完全匹配字符串

    正则表达式使用分组

    使用matches()方法检测

  • 相关阅读:
    vue-cli(vue脚手架)简单流程
    windows环境之node.js安装与环境配置
    fiddler的下载和简单使用
    Linux 配置nginx 代理tomcat,配置ssl
    来聊一聊导出数据问题
    作为一个开发人员应该具备怎么样技术栈和职业素养
    NODEJS的误打误撞
    聊一下程序员的日常
    openstack安装部署私有云详细图文
    openstack:OpenStack架构详解,
  • 原文地址:https://www.cnblogs.com/lh-V/p/4126392.html
Copyright © 2020-2023  润新知