[英]Java Regex move to certain spot in string
我有一些像這樣的字符串:
Title
First
Second
Third
Title 2
First
Second
Third
我希望能夠直接跳到Title 2然后抓住First,Second,Third。 我知道如何抓住東西(使用Pattern / Matcher)但不知道如何跳轉到Title 2。
這個正則表達式將獲取“Title 2”以及它下面的3行(如您所願),並將它們放入匹配組中。 您可以使用Pattern / Matcher讀取匹配組。
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));
如果沒有傳遞給你,你必須看看(?:)
正則表達式運算符,它是非捕獲組。 您可以在某種模式中使用它來確定您的標題2僅在空行之后(此空行用於非捕獲組)。 然后只需指定您希望從文本中接收的群組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.