簡體   English   中英

從多行字符串中提取文本

[英]Extract Text from multi-line string

我有一個帶有多行的字符串 MYSTRING,如下所示:

X:String1;;;; X1:String2 X2:String3 YY1:String4

我的目標是從上面的字符串中提取每個字符串。 我找到了以下公式:

Pattern pattern = Pattern.compile("([\\n|;|:](X:|X1:)[0-9a-zA-Z-\\säöüÄÖÜß,]*[\\n|;])");
Matcher m = pattern.matcher(MYSTRING);

if(m.find())  {
    String  name = m.group(1).substring(1);
}

通過上面的論壇,我只成功地得到了 String1。 如何獲得String2,String3,......的rest?

我設法通過雙重匹配查詢來解決這個問題,如下所示:

首先執行 X 的查詢

pattern = Pattern.compile("([\\n|;|:](X:)[0-9a-zA-Z-\\säöüÄÖÜß,]*[\\n|;])");
            m = pattern.matcher(MYSTRING);

        if(m.find())  {
            String  string1 = m.group(1).substring(1);
        }

然后執行 X1 的查詢:

pattern = Pattern.compile("([\\n|;|:](X1:)[0-9a-zA-Z-\\säöüÄÖÜß,]*[\\n|;])");
            Matcher m = pattern.matcher(MYSTRING);

        if(m.find())  {
            String  string2 = m.group(1).substring(1);
        }

如果你有很多字段,這不是正確的方法,但至少它對我有用,只查詢兩次,可以被認為是臨時溶膠。

暫無
暫無

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

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