正则表达式从文件中检索单词

时间:2012-04-13 10:52:58

标签: java split

我有一组特别是diretory的文件。

从目录中的所有文件(文本文件)中检索内容后,我有一个 字符串列表。

每个字符串元素表示从每个文件中检索的内容。因此列表中的第一个String元素表示第一个文件中的内容。

现在我想分割字符串以获取单词。(后来单词存储为字符串数组) 1)单词可以由单个空格/多个空格分隔。 2)句子以'结束。所以在'之后可以开始一个新词。' 3)新单词可以在' \ n'

之后开始

那么有人可以建议一个可以适合split()方法的正则表达式吗?

4 个答案:

答案 0 :(得分:4)

也许StringTokenizer课程更适合您的需要。构造函数接受字符串标记化和分隔符列表(在您的情况下:空格,。和换行符)。

答案 1 :(得分:1)

String[] result = myString.split("[\\.\\s]");

答案 2 :(得分:0)

你可能不需要regexp,只需从文件中删除每个非字母字符,然后使用Tokenizer读取每个单词。

答案 3 :(得分:-1)

我建议使用令牌...只需浏览每个角色,然后根据角色的内容决定做什么。这是伪代码

string word = "";

while ( EOF ){

    char = getNextChar()

    if ( char not space or full-stop ){
        append the char to the word
    }
    else {
        if ( the word is empty ){ continue /* ignore multi space */ }
        else {
            add the word to an array of words
            reset the word to ""
        }
    }
}

这样,您可以完全控制处理数据的方式 - 您不必担心要包含在正则表达式规则中的疯狂方案。最重要的是,这是最有效的方式(def优于正则表达式)并且您只进行一次数据传递。