2013-03-19 59 views
12

需要帮助。正则表达式Java String由单个星号拆分

line.split("*"); 

我用这行代码将一个字符串拆分为一个星号标记。但是,我的编译器出错了。它说:“无效正规表达式:悬挂META字符'*'”

如何解决此问题?提前致谢。

+3

在SO上“接受”答案是很常见的礼节。随时检查你觉得最好的答案。 – squiguy 2013-03-19 06:42:00

+0

是的,我会检查最好的一个。 :) – princepiero 2013-03-19 09:07:57

回答

24

*在正则表达式中有特殊含义。你必须逃避它。

line.split("\\*"); 
+0

哇,这个作品!谢谢! – princepiero 2013-03-19 05:52:28

2

尝试着这样一句话:

line.split("\\*"); 
+0

是的,这是有效的。谢谢! – princepiero 2013-03-19 05:53:01

2

这是因为我们使用了 “*”,这是一个正则表达式。如果你想使用这个卡拉科特,你需要涂把类似的东西:

line.split("\\*"); 
2

*是在正则表达式元字符。它用于匹配0个或更多元素。如果您想将*用作普通字符而不是特殊字符(即跳过其作为元字符的行为),则在其前面添加转义字符。

如:String[] split = line.split("\\*");

希望这有助于。