我有一个字符串,因为String placeStr="place1*place2*place3"
我想让数组包含place1,place2,place3如下:
String[] places=placeStr.split("*"); System.out.println(places[0]);
但它显示错误E/AndroidRuntime(32118):引起:java.util.regex.PatternSyntaxException:索引1附近的regexp模式中的语法错误:*
我认为原因是字符"*".如果我改变* - ,它显示确定.我该怎么办?
使用Regexp时,\*
表示0 or more
最后定义的表达式的实例.所以举个例子.
s*
意味着匹配任何具有0
或更多"s"的东西.这将匹配"ss"
,"sssss"
或""
.
当我们想要实际搜索*
,而不是将其用作运算符时,我们需要escape
使用该\
字符.但是,单数\
用于特殊字符(例如\s
和\t
),因此我们还需要使用另一个字符来转义该字符\
.
这导致:
\ (ignore the next slash) \ (ignore the star) * (would be 0 or many, but its been ignored so means the literal.)
或者换句话说
\\*
在Java中,我们可以像这样使用它:
String[] places=placeStr.split("\\*"); System.out.println(places[0]);