4

私は文字列を持っています。文字列は「New England 12 Philidelphia 24 (Final)」です。のようなアイテムを取得できる正規表現が必要です。

  1. トップチーム -- ニューイングランド
  2. 最初のチームスコア -- 12
  3. セカンドチーム -- フィリデルピア
  4. セカンドチームスコア -- 24
  5. 結果 -- 最終結果または中括弧内のもの。
4

3 に答える 3

5

以下は、正規表現とグループを使用して必要なデータを抽出する方法を示すSSCCEです。

参考までに、指定した入力に対してのみ機能しますが、このコードは、このような複数のwhile結果を含む入力をスキャンし、ループ内のすべての結果に一致させます。

public static void main( String[] args ) {
    String input = "New England 12 Philidelphia 24 (Final)";
    String regex = "([a-zA-Z ]+)\\s+(\\d+)\\s+([a-zA-Z ]+)\\s+(\\d+)\\s+\\((\\w+)\\)";
    Matcher matcher = Pattern.compile( regex ).matcher( input);
    while (matcher.find( )) {
        String team1 = matcher.group(1);
        String score1 = matcher.group(2);
        String team2 = matcher.group(3);
        String score2 = matcher.group(4);
        String result = matcher.group(5);
        System.out.println( team1 + " scored " + score1 + ", " + team2 + " scored " + score2 + ", which was " + result);
    }
}

出力

New England scored 12, Philidelphia scored 24, which was Final
于 2012-08-27T06:01:08.813 に答える
0

これを使って:

"(\\w+) (\\d+) (\\w+) (\\d+) \((\\w+)\)"
于 2012-08-27T05:13:04.797 に答える
0

これを試してみてください

^[\D]*\s*\d*\s*[\D]*\s*\d*\s*\([\D]*\)$
于 2012-08-27T05:19:50.013 に答える