1. 【强制】在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。 说明:不要在方法体内定义:Pattern pattern = Pattern.compile(规则);
上面这句话怎么理解 把pattern定义成全局变量吗?不写在方法里?

解决方案 »

  1.   

    public static String extractNumber(String input){

    StringBuilder numberStr=new StringBuilder();
    //Pattern p=Pattern.compile("\\d+");
    //意思是不要在方法体内定义Pattern变量,直接像下面这样调用静态方法就行了
    Matcher m=Pattern.compile("\\d+").matcher(input);
    while(m.find()){
    numberStr.append(m.group());
    }
    return numberStr.toString();

    }
      

  2.   

    就直接这样写 Pattern.compile("^1[\\d]{10}$").matcher(mobiles).matches();
    返回的结果就是true或false
      

  3.   

    有什么区别? Pattern.compile()一样会创建Pattern对象
     public static Pattern compile(String regex) {
            return new Pattern(regex, 0);
        }
      

  4.   

    Java 正则表达式 http://www.verejava.com/?id=16994935305527
      

  5.   

    的确,就是定义一个类型为 Pattern 的全局变量。Pattern 不会产生线程安全问题,每一个字符串的匹配结果全部在生成的 Matcher 中,定义成全局变量是比较推荐的做法。