2011-05-28 39 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