按“?/”拆分不起作用

时间:2015-03-12 07:49:32

标签: java regex split

我想通过以下方式拆分字符串:"?/"。我的字符串是:hello?/hi/hello

我的代码是:

String [] list=myString.split("/?/");

我的输出是:[HELLO,hi,hellow]但我希望看到:[hello,hi/hello]

我该怎么做?

4 个答案:

答案 0 :(得分:5)

您需要转义?,否则会被解释为元字符。

满足您需求的最简单模式是:

String[] list = myString.split("\\?/");

如果您不熟悉正则表达式,可以让Pattern.quote()为您完成工作:它接受一个字符串并转义任何可能破坏您的文字拆分表达式的任何讨厌的特殊字符:

String[] list = myString.split(Pattern.quote("?/"));

答案 1 :(得分:0)

试试这个

String [] list = myString.split("\\?/");

答案 2 :(得分:0)

您的正则表达式应该是"\\?/"?需要使用\进行转义)

System.out.println(Arrays.toString("hello?/hi/hello".split("\\?/")))

答案 3 :(得分:-1)

split机制将正则表达式作为输入,因此您需要使用双反斜杠转义特殊字符(它将转义为字符串中的单个反斜杠)

String [] list = myString.split("\\?\\/");