正则表达式将句子分裂为单词

时间:2013-06-28 16:45:51

标签: java regex

我正在处理我的作业,即从字典列表和段落中读取并计算段落中某些单词出现的次数,同时使用LinkedLists和BST。我们已经给出了regex命令拆分paragraph.txt文件,命令为"[\\s|\\pPunct]+"这对我不起作用,所以相反我使用[\\s, ?!]+然而这并不是我做的一切想要它,并且由于正则表达式命令超出了本课程的摘要,我对它们知之甚少。

我正在寻找一个删除所有句号,逗号和空格的命令。 [\\s, ?!]+执行前两个,但是如果我有这一行,那么

..some line here

more text here...

没有删除该返回行,当我将每个单词添加到我的LinkedList中时,我试图删除它;

    public static void insertParagraph(String[] strings) {
    for(int i = 0; i < strings.length; i++) {
        if(strings[i] != "" || strings[i] != " " || strings[i] != null)
            paragraph.insertFirst(strings[i].replaceAll("[^a-zA-Z'\\s]","").toLowerCase());
    }
}

但是if语句也不起作用,有没有人有任何建议?

1 个答案:

答案 0 :(得分:4)

方括号表示一个字符类,圆括号表示捕获组。

查看Pattern类以查看预定义的字符类。

"[\\s|\\pPunct]+" // wrong
"(\\s|\\p{Punct})+" // correct