Java用正则表达式匹配JSON数组
时间: 2024-05-01 19:21:05 浏览: 173
可以使用Java的正则表达式库,如java.util.regex.Pattern和java.util.regex.Matcher来匹配JSON数组。以下是一个示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class JsonArrayRegex {
public static void main(String[] args) {
String json = "{\"fruits\": [\"apple\", \"banana\", \"orange\"]}";
Pattern pattern = Pattern.compile("\"fruits\":\\s*\\[(.*?)\\]");
Matcher matcher = pattern.matcher(json);
if (matcher.find()) {
String fruits = matcher.group(1);
System.out.println(fruits); // 输出: "apple", "banana", "orange"
}
}
}
```
在上面的示例中,我们使用正则表达式`"fruits":\s*\[(.*?)\]`来匹配JSON中的`fruits`数组。这个正则表达式的含义是:
1. 匹配`"fruits":`
2. `\s*`匹配0个或多个空格
3. `\[`匹配左方括号`[`
4. `(.*?)`匹配0个或多个任意字符,非贪婪模式
5. `\]`匹配右方括号`]`
因为我们使用了非贪婪模式`(.*?)`,所以匹配到的结果是整个数组的内容,而不是以`[``]`为界限的整个字符串。最后我们使用`matcher.group(1)`来获取匹配到的第一个括号内的内容,也就是`"apple", "banana", "orange"`。
阅读全文