-2

次のパターンの Java 正規表現をどのように記述しますか。

"123(1,2),234(1,2),345(1,2),123456(1,2),789(1,2)";

結果は次のように出力されます。

123
(1,2)
234
(1,2)
345
(1,2)
123456
(1,2)
789
(1,2)
4

2 に答える 2

1

この正規表現でグローバル マッチを行います: (?<=^|\),)[0-9]+|\([0-9]+,[0-9]+\). これは、「)」で始まる連続した数字のグループ、または文字列の先頭、または(#,#)形式のシーケンスのいずれかと一致します。ここで、#は連続した数字のグループです。

于 2013-07-21T03:08:01.920 に答える
1

これはそれを行います:

String[] parts = str.split("(?=\\()|(?<=\\)),");

ここにテストがあります:

public static void main (String[] args) throws java.lang.Exception {
    String str = "123(1,2),234(1,2),345(1,2),123456(1,2),789(1,2)";
    String[] parts = str.split("(?=\\()|(?<=\\)),");
    System.out.println(Arrays.toString(parts)); }
}

出力:

[123, (1,2), 234, (1,2), 345, (1,2), 123456, (1,2), 789, (1,2)]
于 2013-07-21T03:08:36.637 に答える