2016-11-01 52 views
2

我有以下字符串Java的正則表達式來刪除字符之間的「我」和一切「:」

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

,我需要做到以下幾點:

  1. i:之間刪除一切與,
  2. 取代它刪除{TEXT=
  3. 刪除|HELLO_UK}

我想"9201,9830,90400,92710,94500"

落得我已經在它的企圖,但它並不完全做我想做的。下面是我寫的東西:

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

我得到以下結果:",9830,90400,92710,94500|HELLO_UK}"

注意它如何去掉第一組數字(9201)。

任何人都可以提出我應該使用的正則表達式嗎?

+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 
相關問題