有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用regex表示“W o.Rd”。replaceAll(“单词”、“替换”)

我的目标是进行审查。目前我用的是短信。replaceAll(“(?i)单词”,“replacement”),但这只捕获未拆分的单词

为了绕过这个问题,人们只需在被审查的单词之间添加一个不同的字符

所以我想让“任何其他人想参加Y.O.L.O”变成“任何其他人想参加聚会”,同时只寻找“yolo”。保留“.”在那里会有奖金


共 (1) 个答案

  1. # 1 楼答案

    怎么样:(用“替换”替换“单词”)

    msg.replaceAll("(?i)([^A-Za-z])w[^A-Za-z]?o[^A-Za-z]?r[^A-Za-z]?d([^A-Za-z])",
                   "$1replacement$2") );
    

    [^A-Za-z]不是字母
    [^A-Za-z]?不是字母(可选)
    $1是括号中的第一件事(第一([^A-Za-z])
    $2是括号中的第一件事(最后([^A-Za-z])

    另一种选择是环顾四周:

    msg.replaceAll("(?i)(?<=[^A-Za-z])w[^A-Za-z]?o[^A-Za-z]?r[^A-Za-z]?d(?=[^A-Za-z])",
                   "replacement") );
    

    在给定一个单词的情况下,自动生成上述内容并不困难

    现在,它被发布在互联网上,每个人都可以看到它,并改变他们的垃圾邮件,使其不会被上面提到的内容接收

    Reference

    编辑:我删除了\\b(单词边界),因为1word2将被跳过