今天在做一个关于关键词过滤以及替换的东西,发现正好Java下的String有相关的方法于是写下相关的代码:
String target;
String regex = "[\"TM\"|\"tm\"|\"吃shi\"|\"打不开\"|\"恶心\"|\"广告\"|\"黑屏\"|\"加好友\"|\"假的\"|\"垃圾\"|\"烂\"|\"麻痹\"|\"你妹\"|\"骗\"|\"山寨\"|\"闪退\"|\"屎\"|\"收费\"|\"他妈\"|\"它妈\"|\"差\"|\"要钱\"|\"滚\"|\"妈的\"|\"楼上\"|\"楼下\"|\"mb\"|\"md\"|\"渣\"|\"靠\"|\"卡\"|\"坑\"|\"贱\"|\"操\"|\"BUG\"|\"死\"|\"擦\"|\"卧槽\"|\"傻逼\"|\"异常\"|\"草\"|\"尼玛\"|\"卸载\"|\"骂\"|\"流氓\"|\"不要脸\"|\"盗版\"|\"亲爱的用户朋友\"|\"客服\"|\"360\"|\"激活\"|\"无语\"]+";;
target = source.replaceAll(regex, "***");
return target;
本以为上面的代码可以实现如下的功能:
1:source = “我们很好” 输出为:“我们很好” ,但事实输出为:我们很***
2:source="t" 输出为:“t” , 但事实输出为:“***”;
总之,没有达到预期需求,将里面的整词进行了拆分, 暂时还没有弄明白原因,但网上查后发现将上述代码中的regex调整为:
String regex = "(?:TM|tm|吃shi|打不开|恶心|广告|黑屏|加好友|假的|垃圾|烂|麻痹|你妹|骗|山寨|闪退" +
"|屎|收费|他妈|它妈|差|要钱|滚|妈的|楼上|楼下|mb|md|渣|靠|卡|坑|贱|操|BUG|死|擦|卧槽|傻逼|" +
"异常|草|尼玛|卸载|骂|流氓|不要脸|盗版|亲爱的用户朋友|客服|360|激活|无语)";
便可实现将source中出现的 上述关键全部替换成***。
具体原因待解……