【发布时间】:2016-06-23 16:43:51
【问题描述】:
我实际上正在开发一个解析器,但我被困在一个方法上。
我需要清理某些句子中的具体词,这意味着用空格或nullcharacter 替换这些词。
现在,我想出了这个代码:
private void clean(String sentence)
{
try {
FileInputStream fis = new FileInputStream(
ConfigHandler.getDefault(DictionaryType.CLEANING).getDictionaryFile());
BufferedReader bis = new BufferedReader(new InputStreamReader(fis));
String read;
List<String> wordList = new ArrayList<String>();
while ((read = bis.readLine()) != null) {
wordList.add(read);
}
}
catch (IOException e) {
e.printStackTrace();
}
for (String s : wordList) {
if (StringUtils.containsIgnoreCase(sentence, s)) { // this comes from Apache Lang
sentence = sentence.replaceAll("(?i)" + s + "\\b", " ");
}
}
cleanedList.add(sentence);
}
但是当我查看输出时,我将sentence 中所有出现的单词都替换为空格。
有人可以帮我只替换我句子中要替换的确切单词吗?
提前致谢!
【问题讨论】:
-
sentence.replaceAll("(?i)\\b" + s + "\\b", " ");- 您省略了前导\b字边界。
标签: java regex parsing replaceall