簡體   English   中英

Java Regex移動到字符串中的某個位置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM