簡體   English   中英

如何在 Java 中解析這個字符串

[英]How to parse this string in Java

我想了解您將如何解析 Java 中的以下字符串。 基本上,我想要文本“Begin-Data”和“End-Data”之間的所有內容

Begin-Data
abc
123
End-Data

單線解決方案使用String#replaceAll

String input = "Begin-Data abc 123 End-Data";
String output = input.replaceAll("(?s).*\\bBegin-Data\\s+(.*?)\\s+End-Data\\b.*", "$1");
System.out.println(output);  // abc 123

此答案假定輸入字符串僅包含一次開始/結束標簽Begin-DataEnd-Data 如果你有很多這樣的標簽,那么你應該使用正式的正則表達式模式匹配器:

String input = "Begin-Data abc 123 End-Data Begin-Data abc 345 End-Data";
String pattern = "(?s)\\bBegin-Data\\s+(.*?)\\s+End-Data\\b";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);
List<String> matches = new ArrayList<>();

while (m.find( )) {
    matches.add(m.group(1));
}
System.out.println(matches);  // [abc 123, abc 345]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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