我有一些像这样的字符串:
Title
First
Second
Third
Title 2
First
Second
Third
我希望能够直接跳到Title 2,然后抓住First,Second,Third。我知道如何抓住东西(使用Pattern / Matcher),但不知道如何跳转到Title 2。
答案 0 :(得分:1)
这个正则表达式将抓住标题2'以及它下面的3行(如你所愿),并将它们放在匹配组中。您可以使用Pattern / Matcher读取匹配组。
Title 2\n(.*)\n(.*)\n(.*)
希望这有帮助!
答案 1 :(得分:1)
您可以简单地使用String#split
方法(此处为a 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));
如果没有传递给您,您必须查看(?:)
正则表达式运算符,它是非捕获组。您可以在某种模式中使用它来确定您的标题2仅在空行之后(此空行用于非捕获组)。然后只需指定您希望从文本中接收的论坛。