gpt4 book ai didi

java - 多次查找两个字符串之间的所有字符串

转载 作者:行者123 更新时间:2023-12-01 12:35:54 25 4
gpt4 key购买 nike

我知道这可能是重复的,但我还没有找到满足这个问题的答案。我有一个大字符串,设置如下:

季节
内容内容内容内容内容内容
季节
内容内容内容内容内容内容
季节
内容内容内容内容内容内容

等等

我想获取“season”字符串之间的所有内容并将该内容放入列表中。到目前为止,这是我的代码,但它不起作用,它与任何内容都不匹配......

String pattern = "season";
Pattern pattern2 = Pattern.compile(pattern+"(.*?)"+pattern);
Matcher m = pattern2.matcher(str);
while(m.find()) {
System.out.println(m.group());

当我使用 StringUtils.substringBetween() 时,它确实有效,但我需要将每个字符串放在两个“季节”字符串之间。

最佳答案

最好的选择是使用 lookahead断言season或后面是字符串的结尾。同样,如果换行符序列位于您想要使用 dotall 标志的模式之间,使点 . 也匹配换行符。

String s  = "season\nfoobar foobaz\n\nseason\nbarbaz\nseason\nbazquz";
Pattern p = Pattern.compile("(?s)season\\s*(.*?)(?=\\s*season|$)");
Matcher m = p.matcher(s);
List<String> arrayList = new ArrayList<String>();
while (m.find()) {
arrayList.add(m.group(1));
}
System.out.println(arrayList); // [foobar foobaz, barbaz, bazquz]

关于java - 多次查找两个字符串之间的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25597267/

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