zoukankan      html  css  js  c++  java
  • 正则表达式

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

    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()方法检测

  • 相关阅读:
    20150603_Andriod 多个窗体数据回调
    onActivityResult传值的使用
    20150602_Andriod 向窗体传递参数
    20150601_Andriod 打开新窗体
    C# 添加.DLL 出错的解决方法
    c# 中crystal report输出PDF文件
    参考_Android中,如何新建一个界面,并且实现从当前界面切换到到刚才新建的(另外一个)界面
    andriod 新建 Activity_ Form (详细设置)
    sql in
    如何取得GridView被隐藏列的值
  • 原文地址:https://www.cnblogs.com/lh-V/p/4126392.html
Copyright © 2011-2022 走看看