0

我有 ArrayList,看起来像这样

我需要根据我键入的字符串提取数据。例如,如果我输入systém,我应该得到这个输出:

001 (07.01.01) programovací systém (m)
systém (m) programovaniaCHCTeMa (f) riporpaMMupoBaiiHM
programming system; programming support environmentsystème (m) de programmationProgrammiersystem (n)
nezbytné programové vybavení potrebné pro používání jed-noho nebo vice programovacích jazyku

如果我输入komentár,我应该得到:

004 (07.01.08) komentár (m); poznámka (í)
komentár (m); poznámka (f)
KOMMeHTapHH (m)
comment; remark; note; (computer program) annotationcommentaire (m)
Kommentar (m)
popis*, odkaz n. vysvetlení pripojené k príkazúmve zdrojo-vémprogramu (které se neprojevuje v cílovém programu)

但我不知道如何解决它。我试图通过第一个数字识别块,但我的输出只与这个数字一致。这是我的代码:

  Pattern pattern = Pattern.compile("[0-9]+.*");
  Matcher m;

  String str = "systém";

  for (int i = 0; i < al.size(); i++) {
    String line = al.get(i).toString();
    m = pattern.matcher(line);

    if(m.matches() && line.contains(str))
      System.out.println(line);
      //...Whats next?

  }
}
4

1 回答 1

0

看起来你的正则表达式是错误的。尝试

String str = "systém";
Pattern pattern = Pattern.compile(str);
Matcher m;


for (int i = 0; i < al.size(); i++) {
    String line = al.get(i).toString();
    m = pattern.matcher(line);

    if(m.matches() && line.contains(str))
        System.out.println(line);
    //...Whats next?
}
于 2013-05-25T16:46:21.757 回答