【问题标题】:Filtering whole words with delimiter用分隔符过滤整个单词
【发布时间】:2014-03-02 22:58:26
【问题描述】:
我有一个分隔符可以过滤掉符号和数字。我的程序正在读取一个文件,我想从中排除一些单词,但不是所有单词。这可能听起来令人困惑,但例如。如果我文件中的第一行包含单词light,第二行包含单词lightning,是否可以以某种方式过滤掉light,但保留lightning?
这是我设置的代码和分隔符。
String delimiters = " ,*.-?|\t\r\n^;{}()[]+=<>/1234567890_";
ASCIIDataFile file = new ASCIIDataFile();
【问题讨论】:
标签:
java
regex
filter
delimiter
【解决方案1】:
您是否使用分隔符进行任何拆分或替换操作?
您可以在拆分/替换操作中使用:正则表达式 - "\blight\b",它将匹配 "light" 而不是 "lightning"。
您可以验证/测试这一点@JavaScript RegExp Example
希望这会有所帮助。
【解决方案2】:
你可以在java中使用模式匹配
Set<String> Word = new TreeSet<String>();
while((line=br.readLine()) != null) {
Pattern pattern = Pattern.compile("^YourString");
Matcher matcher = pattern.matcher(line);
while(matcher.find()) {
Word.add(line);
}
}