如何从模式匹配中检索整个单词而不是单个字符

时间:2015-11-06 09:29:18

标签: java regex pattern-matching

我正在从TSV文件的唯一名称中读取模式(此时效率无关紧要):

while (dataRow != null) {
    String[] dataArray = dataRow.split("\t");
    String name = dataArray[1];
    combined += Pattern.quote(name.replace("\"", "")) + "|";

    dataRow = TSVFile.readLine(); // Read next line of data.
}
Pattern all = Pattern.compile(combined);

由于名称中包含quote()个字符,因此必须使用Regex

现在我将Pattern与输入文本匹配:

Matcher m = all.matcher(input);

List<String> matches = new ArrayList<String>();

while (m.find()) {
    matches.add(m.group());
}

matches包含空格字符,单个字符,单词部分以及整个单词,但我只想要匹配整个单词。更确切地说:我想要匹配最长的子字符串,即至少一个字。当然,我可以在最后while循环中对所有内容进行后处理,但这不是Matcher的意思。

0 个答案:

没有答案