gpt4 book ai didi

java - 正则表达式将所有内容匹配到一个空行

转载 作者:行者123 更新时间:2023-11-30 08:37:14 24 4
gpt4 key购买 nike

我已经尝试了几个小时,我确信我遗漏了一些简单的东西。我正在尝试在 Java 中创建一个方法,该方法接受一些文本并提取其中的一部分。

我想匹配从“注释”到此后的第一个空行的所有内容

示例输入

Some info about stuff
Notes: THis is a note about other stuff
So is this
And this

This is something else

输入可以是不同的长度,所以也可以是

  BLabla
Notes: Hello hello
So is this
And this
And this too
also

Now I have something else to say

需要的输出:示例 1

Notes: THis is a note about stuff
So is this
And this

示例 2

 Notes: Hello hello
So is this
And this
And this too
also

我试过:

public static String NotesExtractor(String str){
String mynotes=null;
str=str+"\n\n"+"ENDOFLINE";
Pattern Notesmatch_pattern = Pattern.compile("Notes:(.*?)^\\s*$",Pattern.DOTALL);
Matcher Notesmatchermatch_pattern = Notesmatch_pattern.matcher(str);
if (Notesmatchermatch_pattern.find()) {
String h = Notesmatchermatch_pattern.group(1).trim();
mynotes=h;

}
mynotes=mynotes.replaceAll("^\\n", "").trim();
return mynotes;

}

但我没有得到任何匹配,我不确定为什么。

最佳答案

你可以使用这个正则表达式

(?s)Notes.*?(?=\n\n)

Regex Demo

Java 代码

String line = "Some info about stuff\nNotes: THis is a note about other stuff\nSo is this\n    And this\n\nThis is something else"; 
String pattern = "(?s)Notes.*?(?=\n\n|$)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);

if (m.find()) {
System.out.println(m.group());
}

Ideone Demo

关于java - 正则表达式将所有内容匹配到一个空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37372718/

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