问题
Android 本地过滤新增的敏感词 ,发现正则表达式不生效的问题。
下面的正则表达式可以用 在线正则测试工具 测试,无论大小写都会替换成给定的特殊字符
sb|rubbish|bitch|dead|asshole|bullshit|kill|stupid|fuck|sb|shit|fuck/ig
已忽略大小写
但是在Android项目中,结果是只识别了小写的。
只是识别了小写
解决
修改正则表达式,忽略大小写改为如下写法,即可正常使用
(?i)sb|rubbish|bitch|dead|asshole|bullshit|kill|stupid|fuck|sb|shit|fuck
附代码如下:
val antiSpamRegex = "(?i)sb|rubbish|bitch|dead|asshole|bullshit|kill|stupid|fuck|sb|shit|fuck"
val content = "sb Sb Fuck shit shiT shIt FUCK,fuck Shit shiT rubbish"
val regexStr = Pattern.compile(antiSpamRegex).matcher(content).replaceAll("**")
logError("regex : $regexStr")
输出结果如下:
regex : ** ** ** ** ** ** **,** ** ** **
网友评论