我有一些类似这样的字符串:
Title
First
Second
Third
Title 2
First
Second
Third
我希望能直接跳转到标题2,然后获取第一、第二、第三项内容。我知道如何获取这些内容(使用Pattern/Matcher),但不确定如何跳转到标题2。
Title 2\n(.*)\n(.*)\n(.*)
String#split
方法(这里是 javadoc),并使用换行符\\n
将文本拆分成行,遍历结果数组中的字符串表示形式的行,收集它们,例如,在某些对象表示法中,如一些具有副标题的Title对象列表中。每个空行后创建一个新标题。类似这样:String[] lines = str.split("\\n");
List<List<String>> titles = new LinkedList<>();
List<String> title = new LinkedList<>();
titles.add(title);
for (String line : lines) {
if (line.trim().isEmpty()) {
title = new LinkedList<>();
titles.add(title);
continue;
}
title.add(line);
}
System.out.println(titles.get(1));
(?:)
。您可以在某些模式中使用它来确定您的Title 2是否紧接着一个空行(该空行用于非捕获组)。然后只需指定要从文本中接收的组即可。\n
而是\r\n
或者空行包含空格呢?当然,可以将所有这些情况合并到单个模式中,但为此我们需要知道给定字符串的格式。 - Stanislav\\R{2,}
的问题在于,你只会得到两个字符串,每个字符串都包含组中的所有值,但这可能不是预期的结果,你需要再次拆分它们。这取决于拆分后如何处理这些值的方式。 - Stanislav