正则匹配json数据 属性
public static void main(String[] args) {
// String json="{\"body\":{\"data\":{\"phoneticSpelling\":\"4148596365299634756\"},\"errno\":0,\"qqaa\":\"success\",\"failMsg\":\"饿了么004门店编码不存在\"},\"cmd\":\"resp.order.create\",\"sign\":\"MD5:4c9f9a797aec3a63b3b7c1b17953fdee\",\"source\":\"47121860\",\"ticket\":\"701439a9-b9c6-491c-a915-9ecb7d3a1202\",\"timestamp\":1650753613,\"version\":\"3\"}";
// String json="\"{\\\"body\\\":{\\\"data\\\":{\\\"source_order_id\\\":\\\"4537167234017566453juː\\\"},\\\"errno\\\":0,\\\"error\\\":\\\"success\\\",\\\"failMsg\\\":\\\"饿了么订单号4537167234017566453已存在\\\"},\\\"cmd\\\":\\\"resp.order.create\\\",\\\"sign\\\":\\\"juː\\\",\\\"source\\\":\\\"47121860\\\",\\\"ticket\\\":\\\"dd368296-7321-4cc1-bba8-e271962f7b82\\\",\\\"timestamp\\\":1650766806,\\\"version\\\":\\\"3\\\"}\"";
String json="{\n" +
" \"id\": \"you\",\n" +
" \"metadata\": {\n" +
" \"operation\": \"retrieve\",\n" +
" \"provider\": \"Oxford University Press\",\n" +
" \"schema\": \"RetrieveEntry\"\n" +
" },\n" +
" \"results\": [\n" +
" {\n" +
" \"id\": \"you\",\n" +
" \"language\": \"en-gb\",\n" +
" \"lexicalEntries\": [\n" +
" {\n" +
" \"entries\": [\n" +
" {\n" +
" \"pronunciations\": [\n" +
" {\n" +
" \"audioFile\": \"https://audio.oxforddictionaries.com/en/mp3/ewe_gb_1.mp3\",\n" +
" \"dialects\": [\n" +
" \"British English\"\n" +
" ],\n" +
" \"phoneticNotation\": \"IPA\",\n" +
" \"phoneticSpelling\": \"juː\"\n" +
" }\n" +
" ]\n" +
" }\n" +
" ],\n" +
" \"language\": \"en-gb\",\n" +
" \"lexicalCategory\": {\n" +
" \"id\": \"pronoun\",\n" +
" \"text\": \"Pronoun\"\n" +
" },\n" +
" \"text\": \"you\"\n" +
" }\n" +
" ],\n" +
" \"type\": \"headword\",\n" +
" \"word\": \"you\"\n" +
" }\n" +
" ],\n" +
" \"word\": \"you\"\n" +
"}";
// json=json.replaceAll("\\\\","");
System.out.println("json:"+json);
System.out.println("getField:"+searchMatch(json,"phoneticSpelling",0));
}
/**
* 正则表达式 查找匹配的字符串
* @param json 字符串
* @param word 正则表达式
* @param index 提取正则匹配到字符串的哪一部分 0整串,1第一个()的内容,2第二个()...
* @return 匹配值列表
*/
public static String searchMatch(String json, String word,int index) {
//替换转义符
if(!"".equals(json)) {
json = json.replaceAll("\\\\", "");
}
String value = "";
Pattern pattern = Pattern.compile("(?<=(\"" + word+"\": ))\"(.+?)\"");//"(?<=(\"" + word+"\":))\"(\\w+)?\""
Matcher matcher = pattern.matcher(json);
if (matcher.find()) {
matcher.reset();
while (matcher.find()) {
System.out.println("匹配到的整串-->" + matcher.group(0));
value = matcher.group(index);
System.out.println("整串中指定的子串-->" + value);
break;
}
}
return value;
}
/**
* json数据截取
* @param jsonStr
* @param fieldName
* @return
*/
private static String getFieldValueFromJsonStr(String jsonStr, String fieldName) {
//替换转义符
if(!"".equals(jsonStr)) {
jsonStr = jsonStr.replaceAll("\\\\", "");
}
List<String> fieldValues = new ArrayList<>();
String regex = "(?<=(\"" + fieldName + "\":))\"(.+?)(?=[\\,|\\}])";//"(?<=(\"" + fieldName + "\":)).*?(?=(\\,))";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(jsonStr);
while (matcher.find()) {
if (!"".equals(matcher.group().trim())) {
fieldValues.add(matcher.group().trim());
}
}
if(!fieldValues.isEmpty()) {
return fieldValues.get(0);
}else{
return null;
}
}
分享到:
相关推荐
4. **执行匹配**:使用正则对象的`匹配`或`全局匹配`命令对Json数据进行处理。`匹配`会返回第一个匹配的结果,而`全局匹配`会返回所有匹配的结果。 5. **解析匹配结果**:匹配到的结果通常是一组字符串,你需要...
在这个文件中,我们可以看到如何设置正则表达式,如何调用易语言的相关函数,以及如何处理匹配到的Json数据。通常,这样的源码会包含读取Json字符串、构造正则表达式、执行匹配操作以及提取结果等步骤。 为了更好地...
2. **匹配JSON键值对**:JSON数据中键值对的格式通常是`"key": "value"`,使用正则表达式可以有效地找到这些对。例如,可以使用`"\"(.*?)\": \"(.*?)\"`这个正则表达式来匹配。 3. **分组与捕获**:在正则表达式中...
### Python解析JSON串与正则匹配对比方法 在日常的编程工作中,经常需要处理各种各样的数据格式。其中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...
在正则表达式中,递归匹配是一个重要的概念,它主要用于处理那些具有嵌套结构的数据,例如数学公式中的括号匹配或HTML标签的匹配。 ##### 1.1 嵌套匹配的需求 在很多场景下,我们希望正则表达式能够处理包含多层...
2. **正则表达式**:正则表达式(Regular Expression)是一种模式匹配语言,用于查找、替换或提取文本中的特定模式。在网页抓取后,通常需要对抓取的数据进行预处理,这时正则表达式就非常有用。它可以高效地从HTML...
总的来说,"删除多项正则匹配的文件"这个工具结合了正则表达式的强大匹配能力、递归遍历的深度处理、文件图标展示的用户友好性和序列化技术的数据持久化,为开发者提供了一个高效且灵活的文件管理解决方案。...
JavaScript中的正则表达式(Regular Expression)是一种模式匹配工具,用于在字符串中进行搜索、替换以及提取信息。它是编程语言中处理文本的强大武器,尤其在处理数据验证、文本解析和数据提取方面表现突出。本篇将...
3. **错误检测**:工具能够检查输入的JSON数据是否符合规范,如果存在语法错误,如括号不匹配、引号缺失等问题,它会及时指出,帮助开发者快速定位问题。 4. **高亮显示**:为了提高可读性,JSON数据查看器会对不同...
这些工具可以为用户节省编写和调试正则表达式的时间,尤其适合初学者和经常需要进行正则匹配的开发者。 正则表达式虽然强大,但在使用时也需要特别注意一些细节。例如,若使用不恰当,正则表达式可能会消耗大量的...
类似于`awk`,`sed`也可以通过正则表达式对JSON数据进行简单的操作,如替换或提取特定内容。 在编写Shell脚本来解析JSON时,通常会结合这些工具,根据实际需求选择合适的命令。例如,你可以先用`curl`或`wget`获取...
例如,从HTML中抓取JSON数据时,你可能需要先使用`unescape()`函数,然后用正则修复引号,最后再用`JSON.parse()`: ```javascript var jsonStr = unescape(htmlElement.innerText); jsonStr = jsonStr.replace...
"toolbox"通常指的是一个集合了多种实用功能的库或模块,其中包括正则表达式匹配、数据加密、文件压缩、时间戳处理、emoji支持、对象序列化与反序列化、本地通知、单例模式、设备信息获取、图片处理以及键盘管理等。...
正则表达式(Regular Expression),简称正则,是一种强大的文本处理工具,用于匹配、查找、替换等操作。在处理文本数据时,正则表达式扮演着至关重要的角色,尤其是在提取特定模式的数据时。"正则文本数据提取器...
在易语言中,理解和操作JSON数据通常需要自定义的类或者库来完成,因为易语言的标准库并不直接支持JSON解析。 正则表达式(Regular Expression)是一种强大的文本处理工具,可以用来进行模式匹配、查找、替换等操作...
5. **查找与替换**:EditPlus的查找与替换功能支持正则表达式,这对于在大量JSON数据中搜索特定模式或替换特定值非常实用。 6. **宏录制与播放**:如果你有重复性的JSON操作,可以利用EditPlus的宏功能来录制一系列...
在解析JSON时,可以使用正则表达式来匹配JSON的关键字,如键值对的冒号":"和花括号"{}",以及数组中的逗号","等。通过这种方式,可以实现对JSON结构的初步分析。 递归算法(Recursive Algorithm)是一种在解决问题...
json字符串很有用,有时候一些后台接口返回的信息是字符串格式的,可读性很差,这个时候要是有个可以格式化并高亮显示json串的方法那就好多了,下面看看一个正则表达式完成的json字符串的格式化与高亮显示 ...