java正则表达式

java正则表达式

  • java正则表达式
    • 数字且位数是3-11位
    • 以DIAN-JI开头的字符串
    • 匹配altimes=02h=21m=00n=00m=0p=01on=1
    • 提取出times=05h=02m=03n=01m=0p=01on=1里面的数字

java正则表达式

数字且位数是3-11位

    /**
     * 数字 且位数是3-11位
     */
    private fun isPhoneNum(phoneNumStr:String):Boolean{
        val p = Pattern.compile("[0-9]{3,11}")
        val m = p.matcher(phoneNumStr)
        return m.find()
    }
//11位全是数字
 private boolean isPhone(String name){
        String pattern = "[0-9]{11}";
        // 创建 Pattern 对象
        Pattern r = Pattern.compile(pattern);
        // 现在创建 matcher 对象
        Matcher m = r.matcher(name);
        return  m.find();
    }

以DIAN-JI开头的字符串

    private boolean isBleName(String name) {
        String pattern = "DIAN-JI-\\S+";
        // 创建 Pattern 对象
        Pattern r = Pattern.compile(pattern);
        // 现在创建 matcher 对象
        Matcher m = r.matcher(name);
        return m.find();
    }

匹配altimes=02h=21m=00n=00m=0p=01on=1

/**
     * altimes=02h=21m=00n=00m=0p=01on=1
     *
     * altimes=后面两位数字
     * h=后面两位数字
     * 第一个m=后面两位数字
     * n=后面两位数字
     * 第二个m=后面1位数字([0-1] 0,1,001都会匹配)
     * p=后面两位数字
     * on=后面1位数字([0-1] 0,1,001都会匹配)
     *
     * @param s
     * @return
     */
    public static boolean test1(String s){
        String pattern = "altimes=[0-9]{2}h=[0-9]{2}m=[0-9]{2}n=[0-9]{2}m=[0-1]p=[0-9]{2}on=[0-1]";
        // 创建 Pattern 对象
        Pattern r = Pattern.compile(pattern);
        // 现在创建 matcher 对象
        Matcher m = r.matcher(s);
        return m.find();
    }

提取出times=05h=02m=03n=01m=0p=01on=1里面的数字

  public static void test2(String s){
        Pattern p = Pattern.compile("[0-9]+");
        Matcher m = p.matcher(s);
        List<String> allMatches = new ArrayList<>();
        while (m.find()) {
            System.out.println(m.group());
            allMatches.add(m.group());
        }
    }

你可能感兴趣的:(Android,java,android,正则表达式)