尝试在Java中拆分字符串,包含换行符,!,空格,?,逗号等

时间:2017-02-10 20:10:37

标签: java regex split

我知道有很多关于此问题的主题,但是我尝试使用正则表达式//W+,它并不像我期望的那样工作。

我参加了Java课程,而且我有一长串文字,这实际上是莎士比亚戏剧的一部分。因此,它有许多标点符号,空格,换行符等。 练习的解释告诉我使用message.split("//W+")来分割它并接收一个数组,每个字段包含一个单词。

但它不适合我。如果我使用message.split(" "),这个练习似乎适用于另一个正则表达式。我得到的字段用空格分隔,但很多单词由\n加入或最后有!

这是我的代码,文字很短:

public void testSplit(){
    String message = ("This is the message to split!");
    String[] splitMsg= message.split("//W+");
    for (int k=0; k<splitMsg.length;k++){
        System.out.println(splitMsg[k]);
    }
 }

输出是字符串This is the message to split!

谢谢!

2 个答案:

答案 0 :(得分:2)

这是因为转义是\\而不是//

更新:尝试使用此工具Regexr测试您的样本。你会看到它与\ w +一起使用,但是这个表达式只是检查单词,不会包含惊叹号。

答案 1 :(得分:1)

您将错误的正则表达式参数传递给split函数。 \ W +应为// W +

public void testSplit(){
    String message = ("This is the message to split!");
    String[] splitMsg= message.split("//W+");
    for (int k=0; k<splitMsg.length;k++){
        System.out.println(splitMsg[k]);
    }
 }