我目前正在用我的“脏字”过滤器找到部分匹配。在java中的字符串匹配
例如:如果我通过在这两个参数替换字( “驴”, “传球传球传给屁股”)
这种方法
private static String replaceWord(String word, String input) {
Pattern legacyPattern = Pattern.compile(word, Pattern.CASE_INSENSITIVE);
Matcher matcher = legacyPattern.matcher(input);
StringBuilder returnString = new StringBuilder();
int index = 0;
while(matcher.find()) {
returnString.append(input.substring(index,matcher.start()));
for(int i = 0; i < word.length() - 1; i++) {
returnString.append('*');
}
returnString.append(word.substring(word.length()-1));
index = matcher.end();
}
if(index < input.length() - 1){
returnString.append(input.substring(index));
}
return returnString.toString();
}
我得到P * 唱p * SP ** sed的计划** S
当我真的只是想“路过通过**秒。 有谁知道如何避免使用此方法? 这部分匹配任何帮助将是巨大的感谢!
所以,你想''屁股'前面的一些空白? –
你想看看[Word边界](http://docs.oracle.com/javase/tutorial/essential/regex/bounds.html) –