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

  • 相关阅读:
    HDU 4472 Count DP题
    HDU 1878 欧拉回路 图论
    CSUST 1503 ZZ买衣服
    HDU 2085 核反应堆
    HDU 1029 Ignatius and the Princess IV
    UVa 11462 Age Sort
    UVa 11384
    UVa 11210
    LA 3401
    解决学一会儿累了的问题
  • 原文地址:https://www.cnblogs.com/lh-V/p/4126392.html
Copyright © 2011-2022 走看看