0

私は正規表現が初めてです。以下の行からポイントデータを分割するにはどうすればよいですか:

((X1,Y1),(X2,Y2),(X3,Y3))

に分割:

(X1,Y1)
(X2,Y2)
(X3,Y3)

前もって感謝します :)

4

2 に答える 2

2

さて、ネストされた括弧が導入されると、括弧または括弧からコンテンツを抽出することは、すぐに正規表現で複雑になる可能性があります。しかし、それでもあなたの現在のケースでは、Patternとクラスを使用して結果を得ることができるようです(少し複雑になるため、Matcherしようとしないでください):split

String str = "((X1,Y1),(X2,Y2),(X3,Y3))";

// The below pattern will fail with nested brackets - (X1, (X2, Y2)). 
// But again, that doesn't seem to be the case here.    
Matcher matcher = Pattern.compile("[(][^()]*[)]").matcher(str);

while (matcher.find()) {
    System.out.println(matcher.group());
}
于 2013-02-17T11:32:51.347 に答える
1

(XXX,YYY)これは、パターンの種類を探す他の回答の代替です。

String s = "((X1,Y1),(X2,Y2),(X3,Y3))";
Matcher m = Pattern.compile("(\\(\\w+,\\w+\\))").matcher(s);
while(m.find()) {
    System.out.println(m.group());
}
于 2013-02-17T11:45:39.837 に答える