2016-11-01 2 views
2

は、私は以下の文字列のJava正規表現Iはと ':'

"{TEXT=9201i3:9830i22:90400i11:92710i7:94500|HELLO_UK}" 

を持っていると私は、次の操作を行う必要があります

  1. i:の間のすべてを削除し、 ,
  2. を削除してください。{TEXT=
  3. |HELLO_UK}

私はそれに試みを持っていたが、それはかなり私がやりたいことはありません"9201,9830,90400,92710,94500"

で終わるしたいです。以下は、私が書いたものです:

numbers = numbers.replaceAll("\\D.*?:", ","); 

私は次のような結果を得る:それは数字(9201)の最初のセットを削除したか",9830,90400,92710,94500|HELLO_UK}"

お知らせ。

誰も私が使用してください正規表現を提案することはできますか?

+1

てみてください( '{TEXT =)になります|私はD * \\ :| \\ | HELLO_UK} '。また、[regexr](http://regexr.com/3ei76)と呼ばれる正規表現のためのきれいなツールがあります。 – Jezor

答えて

2

ここに行く:

String str = "{TEXT=9201i3:9830i22:90400i11:92710i7:94500|HELLO_UK}" 
     .replaceAll("(\\{TEXT=|\\|HELLO_UK\\})", "") 
     .replaceAll("i(.*?):", ","); 

System.out.println(str); 
+0

ありがとう@Boris Shchegolev! – Daredevi1

0

また、次の試みることができます。

String str = "{TEXT=9201i3:9830i22:90400i11:92710i7:94500|HELLO_UK}"; 
str.replaceAll("[(A-Z)*{|}_=]", "") 
    .replaceAll("[i:]", ","); 

System.out.println(str); 

出力は

9201,3,9830,22,90400,11,92710,7,94500