gpt4 book ai didi

java - 用于解析具有相同类型表达式的字符串的正则表达式

转载 作者:行者123 更新时间:2023-12-01 23:41:10 26 4
gpt4 key购买 nike

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

\"6\":\"Services Ops\",\"practice_name\":\"Services Ops\",\"7\":\"Management\",

为此,我将正则表达式编写为

(^\\\"6\\\":\\\"[A-Za-z \s]*)

上面的表达式给出的结果为:\"6\":\"Services Ops\

我只想要服务操作

而且还有多个记录,例如\"5"\:\"xxx"\等,因此如果我只为 Service Ops 编写表达式,那么来自其他字段的条目也会包含在表达式的结果。

有什么方法可以选择以某种模式开头的字符串,但我们可以排除该模式。

就像上面的示例一样,字符串以 \"6\":\" 开头,但我们可以排除这部分并仅获得 Service Ops 作为结果。

谢谢。

最佳答案

您可以使用仅执行检查但不匹配的环视:

lookahead (?=...)
lookbehind(?<=...)

示例:

(?<=\\\"6\\\":\\\")[^\"]++(?=\")

另一种方法是使用捕获组(...):

\\\"6\\\":\\\"([^\"]++)\"

然后您可以只提取该组的内容。示例:

Pattern p = Pattern.compile("\\\"6\\\":\\\"([^\"]++)\"");
Matcher m = p.matcher(yourString);
if (m.matches()) {
System.out.println(m.group(1));
}

关于java - 用于解析具有相同类型表达式的字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17937774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com