0

次の文字列を指定します。

423545(50),[7568787(50)],53654656,2021947(50),[021947],2021947(50),[8021947(50)]

私はそれを分割し、角かっこと角かっこ内の数字を除いて内容を配列に入れたいと思います。つまり、結果は以下を含む配列になるはずです。

{423545,7568787,53654656,2021947,021947,2021947,8021947}

これまでの私の試みは、角括弧がない場合にのみ機能します:

String str = "342398789, [233434],423545(50),[7568787(500)],53654656,2021947(50),[021947],2021947(150),[8021947(50)]";
String[] listItems = str.split("(\\(\\d+\\))?(?:,|$)")

上記の正規表現を更新して、角括弧で囲まれた数値も抽出するにはどうすればよいですか?

抽出しようとしている文字列はデータベース行の識別子であるため、データベース行を取得するにはそれらを抽出する必要があります。

4

2 に答える 2

2

あなたはこの方法を試すことができます

String str = "[342398789], [233434] ,423545(50),[7568787(500)],"
        + "53654656,2021947(50),[021947],2021947(150),[8021947(50)]";
String[] listItems = str.replaceFirst("^\\[", "").split(
        "(\\(\\d+\\))?\\]?(\\s*,\\s*\\[?|$)");

System.out.println(Arrays.toString(listItems));

出力

[342398789、233434、423545、7568787、53654656、2021947、021947、2021947、8021947]

于 2013-01-20T18:29:42.803 に答える
1

この方法を試してください:

String str = "342398789, [233434],423545(50),[7568787(500)],53654656,2021947(50),[021947],2021947(150),[8021947(50)]";
String[] listItems = str.replaceAll("\\(\\d+\\)","")replaceAll("\\[","").replaceAll("\\]","").split(",");
于 2013-01-20T18:28:46.807 に答える