2011-05-28 71 views
0

我在RegEx中遇到了問題;Java RegEx問題?

我的路線是:

CREATE CHAN:NAME=BTSM:1/BTS:2/TRX:5/CHAN:7,CHTYPE=TCHF_HLF,FHSYID=FHSY_0 

,我想這一點:

content [0] = BTSM:1/BTS:2/TRX:5/CHAN:7 
content [1] = CHTYPE 
content [2] = TCHF_HLF 
content [3] = FHSYID 
content [4] = FHSY_0 

我寫了這個:

String[] content = value.split("^=/:|,|=|,$"); 

,但它不工作:( 所以可否告知我一下那... 非常感謝...

回答

4
String[] content = value.replaceFirst("^[^=]*=", "").split("[,=]"); 

應該做你想做的。

我不明白你是如何派生的"^=/:|,|=|,$"所以我不能告訴你你錯了什麼地方,但是這裏有一個細節。

^= /:

這是怎麼回事,如果它發生在開始時跳過字符串=/:和結果的開始堅持一個空字符串。也許你想要一個字符集。 [=/:]是一個字符集,可以匹配任何一個字符的出現。

這將分裂的任何逗號。

=

這將分割上任何等號。

,$

這將跳過在輸入的結尾逗號(,或只是在輸入端的換行符之前),如果被跳過將堅持對的結束一個空字符串拆分結果。

+0

+1 - 我喜歡那樣。 – MByD 2011-05-28 01:16:19

+0

+1簡單,我喜歡。 RegEx不是解決所有問題的工具。 – tjameson 2011-05-28 01:16:28

2

我不知道你到底要傳遞給split()那個東西是什麼,但你需要做的是通過第一=除去了一切後的,=任何occurence分裂。這可以完成:

 
String[] content = (value.substring(value.indexOf('=') + 1)).split("[,=]"); 
+0

哦,甚至更好。簡單總是讓我開心=) – tjameson 2011-05-28 01:17:51