1. 正则匹配简单JSON串:

    /**
     * 简单JSON串匹配
     *
     * @param src        源字符串
     * @param firstsSign 首次出现标识
     * @return
     */
    private static String regularJsonSimple(String src, String firstsSign) {

        // \{ : 字符串转义
        // [^}] : 匹配除了}以外的任意字符  -> Tips:反义的知识点
        // * :重复零次或更多次  + : 重复一次或更多次  -> Tips:重复的知识dian
        String target = "\\{\"" + firstsSign + "\":[^\\}]*\\}";
        Matcher m = Pattern.compile(target).matcher(src);
        if (m.find()) {
            return m.group();
        }
        return null;
    }

2. 正则匹配复杂JSON串:

    /**
     * 复杂JSON串匹配
     *
     * @param src          源字符串
     * @param firstsSign   首次出现标识
     * @param lastBraceNum 最后出现}的次数
     * @return
     */
    private static String regularJsonComplex(String src, String firstsSign, Integer lastBraceNum) {
        // . : 匹配除换行符以外的任意字符 -> Tips:元字符
        String target = "(\\{\"" + firstsSign + "\":.*)";
        Matcher m = Pattern.compile(target).matcher(src);
        if (m.find()) {
            String newSrc = m.group();
            int count = 0;
            String target1 = "\\}";
            Matcher m1 = Pattern.compile(target1).matcher(newSrc);
            while (m1.find()) {
                if (++count == lastBraceNum) {
                    return newSrc.substring(0, m1.end());
                }
            }
        }
        return null;
    }

3. 正则匹配JSON数组:

    /**
     * JSON数组匹配
     *
     * @param src        源字符串
     * @param firstsSign 首次出现标识
     * @return
     */
    private static String regularJsonArray(String src, String firstsSign) {

        // \{ : 字符串转义
        // [^}] : 匹配除了}以外的任意字符  -> Tips:反义的知识点
        // * :重复零次或更多次  + : 重复一次或更多次  -> Tips:重复的知识dian
        String target = "\\[\\{\"" + firstsSign + "\":[^\\]]*\\]";
        Matcher m = Pattern.compile(target).matcher(src);
        if (m.find()) {
            return m.group();
        }
        return null;
    }

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 4 个月前
8c391e04 7 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐