Android 使用正则表达式

    String s3 = "body908888huhuc实测实《hu";
    ArrayList allSatisfyStr = new ArrayList<>();
    //需要body和《hu之间的字符串
    allSatisfyStr = getAllSatisfyStr(s3,"(?<=body).+(?=《hu)");
    //上述正则表达式利用了:获取指定字符串之后:  (?<=指定字符串)     获取指定字符串之前: (?=指定字符串)
    //如果指定字符当中出现:()"需要对字符串做转义处理
    /**
     * 获取所有满足正则表达式的字符串
     * @param str 需要被获取的字符串
     * @param regex 正则表达式
     * @return 所有满足正则表达式的字符串
     */
    private ArrayList getAllSatisfyStr(String str, String regex) {
        if (str == null || str.isEmpty()) {
            return null;
        }
        ArrayList allSatisfyStr = new ArrayList<>();
        if (regex == null || regex.isEmpty()) {
            allSatisfyStr.add(str);
            return allSatisfyStr;
        }
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            allSatisfyStr.add(matcher.group());
        }
        return allSatisfyStr;
    }

 

你可能感兴趣的:(Android)