将字符串拆分为“*”字符时出现PatternSyntaxException

时间:2013-10-07 11:01:20

标签: java regex

每当我尝试使用"hello*world"拆分字符串s.split("*");时,我都会遇到PatternSyntaxException。

我尝试过使用s.split("\*");,但这又给了我一个错误。我确定这很简单。

我如何阻止这种情况?

2 个答案:

答案 0 :(得分:5)

*是正则表达式中的元字符,用作匹配零个字符的通配符量词

尝试使用2个反斜杠字符

s.split("\\*");

答案 1 :(得分:3)

split方法将正则表达式作为参数,而不是普通字符串。 *在正则表达式中具有特殊含义。如果要拆分文字*,则必须使用反斜杠对其进行转义。但反斜杠也是Java字符串文字中的转义字符,所以你必须使用两个反斜杠来转义反斜杠:

s.split("\\*")