gpt4 book ai didi

java - 使用正则表达式获取字符串中可能最短的组

转载 作者:行者123 更新时间:2023-11-30 07:53:41 26 4
gpt4 key购买 nike

我有一个很长的字符串,我需要在其中找到所有最短的组。目前发生的情况是我得到了 2 个组,其中一组包含其间的所有数据(它可能根据需要更具体)。我无法理解应该在正则表达式模式中更改什么来处理我的情况。

字符串 - “aaa START1 value1/END bbb START2 value2/END TAG ccc START3 value3/END TAG ddd”

预期 - START2 value2/END TAG、START3 value3/END TAG
实际 - START1值1/END bbb START2值2/END标记、START3值3/END标记

我的类(class)是 -

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Reg {
public static void main(String[] args) {
String response = "aaa START1 value1 /END bbb START2 value2 /END TAG ccc START3 value3 /END TAG ddd";

StringBuilder sb1 = new StringBuilder();

Pattern p = Pattern.compile("START[0-9]+(.*?)/END TAG");
Matcher matcher1 = p.matcher(response);

while (matcher1.find()) {

sb1.append(matcher1.group()).append(" , ");
}
System.out.println(sb1);
}
}

最佳答案

START[0-9]+(?:(?!\\bSTART).)*?/END TAG

您可以尝试此操作。请参阅演示。lookahead 不允许在您的组之间出现另一个 START

https://regex101.com/r/cJ6zQ3/21

关于java - 使用正则表达式获取字符串中可能最短的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32985926/

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