Java 无法抓取第一个捕获组-Matcher find()显示为空
输出:Java 无法抓取第一个捕获组-Matcher find()显示为空,java,regex,Java,Regex,输出: String response = "{\"phone\":[{\"firstName\":\"sandeepan\",\"lastName\":\"\"}]}"; System.out.println("response "+response); Pattern ps = Pattern.compile("/\\{\"\\.\\*\"firstName\":\"([a-z]*)\"\\.\\*/"); Matcher m = ps.matcher(res
String response = "{\"phone\":[{\"firstName\":\"sandeepan\",\"lastName\":\"\"}]}";
System.out.println("response "+response);
Pattern ps = Pattern.compile("/\\{\"\\.\\*\"firstName\":\"([a-z]*)\"\\.\\*/");
Matcher m = ps.matcher(response);
while(m.find()) {
System.out.println("matched "+m.group());
}
System.out.println("After matching block");
regex正在运作,尽管-
为什么我们使用正则表达式而不是json解析:
- 对于给定的电话号码,响应中可能有多组数据,我们可以获取第一组数据李>
- 第一个属性中有一个值(“phone”是一个值,而不是一个键,因此需要将其建模为一个类,以便正确地进行建模。)
这只是一个一次性任务,因此我们需要快速完成-实现时间不多。为什么要使用正则表达式解析JSON?响应中可能有多组数据与给定的电话号码对应,这只是一个一次性任务,因此,我们需要快速完成这项工作—没有太多的实现时间。请删除开头和结尾处的
/
。实际上,Java中的正则表达式与正则表达式测试仪中的正则表达式不同。你越轨了,真的被越轨弄糊涂了。您能指导我转义后的模式是什么吗?您所需要的只是模式。编译(“\'firstName\”:\”([^\“]*)\”)
和m.group(1)
。
response {"phone":[{"firstName":"sandeepan","lastName":""}]}
After matching block