0

我想在我的字符串中分隔“/ *”:

例如

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 *

有人对我有解决方案吗?

4

3 回答 3

5

String.split需要Regex分裂。And*是一个Regex具有特殊含义的元字符 - 匹配0 or more它之前的模式。

你需要逃避: -

String[] line_split=line_str.split("/\\*");
于 2012-11-07T19:59:50.493 回答
2

错误消息说:

索引 0 附近悬空元字符 '*' *

*是一个正则表达式元字符,您需要使用\\.


在这种情况下,您可以使用Pattern类来构建您的正则表达式,如下所示:

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

输出是

\Q/*\E

这是你的正则表达式。

于 2012-11-07T20:00:34.553 回答
0

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

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

因此,您还没有粘贴重现问题的代码。但我认为要替换的真正字符串是类似的,但作为正则表达式是非法的。

于 2012-11-07T20:55:45.580 回答