Android正则表达式忽略大小写不生效

2020-11-23  本文已影响0人  南窗云

问题

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 : ** ** ** ** ** ** **,** ** ** **
上一篇 下一篇

猜你喜欢

热点阅读