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”等等,因此如果我只为服务操作编写表达式,

我不熟悉java中的正则表达式解析。我想解析包含记录的字符串。但我只想选择该记录的选定部分

\"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。