2012-11-07 44 views
0

我想delimite “/ *” 在我的字符串:java的分隔符错误

例如

String str="6666 /* 555/777 * ttt"; 

// And result should be 
result= 6666 , 555/777 * ttt 

String[] line_split=line_str.split("/*"); 

编写的程序,我得到这个错误:

Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0 * 

任何人都有我的解决方案?

+1

一个相当明显的解决方案是谷歌'java.util.regex.PatternSyntaxException:在''附近悬挂元字符*'... – home

回答

5

String.split需要Regex进行拆分。并且*Regex中的元字符,其具有特殊含义 - 匹配0 or more之前的模式。

你需要逃脱: -

String[] line_split=line_str.split("/\\*"); 
2

错误消息说:

Dangling meta character '*' near index 0 *

*是一个正则表达式元字符,你需要\\逃脱它。


在这种情况下,你可以使用Pattern类来建立你的正则表达式如下:

String regex = Pattern.quote("/*"); 
System.out.println(regex); 

输出是

\Q/*\E

这是你的正则表达式。

0

所以是的,这是一个元。但是有问题的表达式/*是一个有效的正则表达式。这实际上工作,只是没有给出预期的结果:

System.out.println(Arrays.toString("aoeuaoue".split("/*"))); 

Therofore你没有粘贴代码,再现你的问题。但我认为要替换的实际字符串类似,但是作为正则表达式是非法的。