gpt4 book ai didi

java - 正则表达式匹配字符串内的文本,并删除尾随换行符

转载 作者:行者123 更新时间:2023-11-30 05:56:34 24 4
gpt4 key购买 nike

您好,我需要找到可以获取此文本中间部分的正则表达式:

# Command // first line with symbol character 

First line of interest
Second line of interest
\n
Third line of interest
\n
\n // I am not interested in trailing new lines.

如何获取以感兴趣的第一行开始并以感兴趣的第三行结束的文本?谢谢。

最佳答案

String test = "# Command\n\nFirst line of interest\r\nSecond line of interest\n\r\nThird line of interest\r\n\n";
System.out.printf("%n>>%s<<%n", test);

Pattern p = Pattern.compile("^(?!#).+(?:[\r\n]+.+)*", Pattern.MULTILINE);
Matcher m = p.matcher(test);
if (m.find())
{
System.out.printf("%n>>%s<<%n", m.group());
}

输出:

>># Command

First line of interest
Second line of interest

Third line of interest

<<

 

>>First line of interest
Second line of interest

Third line of interest<<

匹配从不以井号符号 ((?!#)) 开头的第一行的开头(在 MULTILINE 模式下为 ^)开始,但是确实包含行分隔符以外的字符(.+ .*)。

[\r\n]+ 匹配一个或多个行分隔符,无论它们是 Unix (\n)、DOS (\r\n ) 或旧版 Mac (\r) 样式的分隔符。无论您的代码在哪个平台上运行,您都应该始终准备好处理任何或所有不同的行分隔符。

然后,

(?:[\r\n]+.+)* 匹配零个或多个附加行,而不匹配任何尾随行分隔符。

关于java - 正则表达式匹配字符串内的文本,并删除尾随换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6968450/

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