gpt4 book ai didi

java - 匹配以空格开头的所有行,直到不以空格开头的行

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

所以我有这样几行:

tag1:
line1word1 lineoneanychar
line2word1
tag2:
line1word1 ....
line2word1 .....

我正在尝试构建一个 java 正则表达式来提取标签下的所有数据。即:

String parsed1 = line1word1 lineone\nline2word1
String parsed2 = line1word1 ....\nline2word1 .....

我相信正确的方法是使用这样的东西,但我还没有完全正确:

    Pattern p = Pattern.compile("tag1:\n( {1}.*)\n(?!\\w+)", Pattern.DOTALL);
Matcher m = p.matcher(clean_data);
if(m.find()){
System.out.println(m.group(1));
}

如有任何帮助,我们将不胜感激!

最佳答案

可能是这样的

public static void main(String[] args) throws Exception {
String input = "tag1:\n"
+ " line1word1 lineoneanychar\n"
+ " line2word1\n"
+ "tag2:\n"
+ " line1word1 ....\n"
+ " line2word1 .....\n";

Pattern p = Pattern.compile("tag\\d+:$\\n((?:^\\s.*?$\\n)+)", Pattern.DOTALL|Pattern.MULTILINE);
Matcher m = p.matcher(input);
while(m.find()){
System.out.println(m.group(1));
}
}

记住在正则表达式中转义\\。

\d 是一个数字

\s一个空格

(?:something) 用于创建一个在匹配器中不是真正“组”的组

关于java - 匹配以空格开头的所有行,直到不以空格开头的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25655853/

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