美文网首页
Android正则表达式忽略大小写不生效

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

作者: 南窗云 | 来源:发表于2020-11-23 11:48 被阅读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 : ** ** ** ** ** ** **,** ** ** **
    

    相关文章

      网友评论

          本文标题:Android正则表达式忽略大小写不生效

          本文链接:https://www.haomeiwen.com/subject/ejimiktx.html