Java 用于分析具有相同表达式类型的字符串的正则表达式
我不熟悉java中的正则表达式解析。我想解析包含记录的字符串。但我只想选择该记录的选定部分Java 用于分析具有相同表达式类型的字符串的正则表达式,java,regex,Java,Regex,我不熟悉java中的正则表达式解析。我想解析包含记录的字符串。但我只想选择该记录的选定部分 \"6\":\"Services Ops\",\"practice_name\":\"Services Ops\",\"7\":\"Management\", 为此,我将正则表达式写成 (^\\\"6\\\":\\\"[A-Za-z \s]*) 上面的表达式给我的结果是:“6\”:“Services Ops\ 我只需要服务操作 还有多个记录,如“5”:“xxx”等等,因此如果我只为服务操作编写表达式,
\"6\":\"Services Ops\",\"practice_name\":\"Services Ops\",\"7\":\"Management\",
为此,我将正则表达式写成
(^\\\"6\\\":\\\"[A-Za-z \s]*)
上面的表达式给我的结果是:“6\”:“Services Ops\
我只需要服务操作
还有多个记录,如“5”:“xxx”等等,因此如果我只为服务操作编写表达式,那么表达式的结果中也会包含来自其他字段的条目
是否有任何方法可以选择以某个模式开始的字符串,但我们可以排除该模式
像上面的例子一样,字符串以\“6\”:\“
开头,但我们可以排除这一部分,结果只能得到服务操作
谢谢。您可以使用仅执行检查但不匹配的lookarounds:
lookahead (?=...)
lookbehind(?<=...)
然后,您只能提取组的内容。例如:
Pattern p = Pattern.compile("\\\"6\\\":\\\"([^\"]++)\"");
Matcher m = p.matcher(yourString);
if (m.matches()) {
System.out.println(m.group(1));
}
您可以使用仅执行检查但不匹配的查找工具:
lookahead (?=...)
lookbehind(?<=...)
然后,您只能提取组的内容。例如:
Pattern p = Pattern.compile("\\\"6\\\":\\\"([^\"]++)\"");
Matcher m = p.matcher(yourString);
if (m.matches()) {
System.out.println(m.group(1));
}
那个输入看起来很像json。那个输入看起来很像json。