也可以在连字符处拆分字符串

时间:2014-04-21 23:21:05

标签: java regex

以下行将我的字符串拆分为(.),(,),(:)和换行符(\n)字符。

String[] textPhrases = text.split("[.,:\\n]");

我也需要拆分连字符,但这不起作用:

String[] textPhrases = text.split("[.,:/-/\\n]");

我错过了什么或做错了什么?谢谢。

3 个答案:

答案 0 :(得分:3)

这是正则表达式。连字符在字符类中具有特殊含义。您需要将连字符设置为类中的第一个最后一个项:

[-.,:\n]

答案 1 :(得分:2)

  

我也需要拆分连字符,但这不起作用......我错过了什么或做错了什么?

首先回答你的问题,在这张照片中出现了什么问题,你的连字符周围的字符类中有正斜杠。相反,您应该使用转义序列字符(\\

[.,:/-/\\n]
    ^^^ Remove these and replace with the escape sequence character (\\-)

在字符类[]中,您可以将连字符(-)设置为第一个最后一个字符。您也可以将其转义([.,:\\-\n])以添加连字符以进行匹配。

String s  = "hey,hi.foo:bar\nbaz-quz";
String[] parts = s.split("[.,:\n-]");
System.out.println(Arrays.toString(parts));

输出

[hey, hi, foo, bar, baz, quz]

答案 2 :(得分:0)

你必须使用:

String[] textPhrases = text.split("[.,:\\-\\n]");