正则获取Json字符串和数组
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
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 个月前
更多推荐
已为社区贡献2条内容
所有评论(0)