从数据库读取字符串,把这些字符串自动生成正则表达式然后判断页面读过来的内容是否与正则匹配,匹配的话就替换成*.
这这么写啊 ?假设数据库读来的字符串我都放在LIST中了。。这些字符串可能中文,也可能英文现在我们就假设现在的list里面是“FUCK,妈比”等怎么自动生成正则啊然后把读过来的内容替换成*。急等。。
这这么写啊 ?假设数据库读来的字符串我都放在LIST中了。。这些字符串可能中文,也可能英文现在我们就假设现在的list里面是“FUCK,妈比”等怎么自动生成正则啊然后把读过来的内容替换成*。急等。。
现在我已经从表里把这些字段取出来了,放在一个list中现在怎在一个方法中自动生成一条正则,来匹配这些从数据库读出来的字段???然后把从页面读来的内容与这条正则比较。。有相同的就替换成*
我下面用伪代码的形式给你演示下思路: private List<String> replaceWords = new ArrayList<String>();
replaceWords.add("FUCK");replaceWords.add("妈比"); ......
for(String List中每个字符串 : List) {
String 替换后的字符串 = this.replaceIllegalWords(List中每个字符串,replaceWords,"*")
}
private String replaceIllegalWords(String str, List<String> replaceWords, String placeholder) {
for(String replaceWord : replaceWords) {
if(str.indexOf(replaceWord)!=-1)
str = str.replaceAll(replaceWord, placeholder);
}
return str; }
str = str.replace(list.get(i), "*");
}
for(int i = 0, k = list.size(); i++) {
if(i > 0) {
sb.append("|");
}
sb.append(Pattern.quote(list.get(i)));
}
str = str.replaceAll(sb.toString(), "*");你可以比较一下两者的效率,找一个快一点的。
str.replace("fuck|妈比", "*");
即使很简单的字符串 String regex = "fuck|shit"; 也可说是正则表达式,
如果你们领导要学习正则,叫他来拜 “ 火龙果@宝家族”为师吧,绝对大师级的