0

我想知道如何使用高度安全的 Java 正则表达式来审查“屁股”(或 A 字)这个词。

这使事情变得困难,因为 A 词可以包含在许多其他无害的词中。例如,“草”。

我已经为 A 字的许多前缀设置了部分开头部分,但似乎无法找到如何在不审查诸如“刺客”之类的后缀的情况下审查这个词。

String string = String.replaceAll("^(?!(b|B|gr|gR|Gr|GR|gl|gL|Gl|GL|m|M|s|S|h|H|p|P|g|G)).*[aA4]+[\\W[_]]*?[$5SszZ]+[\\W[_]]*?[$5SszZ]+", "***");

我发现这很难,仍然找不到解决方案。

4

1 回答 1

2

使用环视

(?<=\s)(?:ass)(?=\s)

将检查单词周围的空格或换行符。如果您希望该词即使被非字母字符 ( :ass:) 包围也被审查,请使用以下命令:

(?<=\W)(?:ass)(?=\W)

如果您正在寻找不区分大小写的搜索,(?i)请在开头添加。

使用单词边界

评论中有人提出了更好的方法:

\b(?:ass)\b

或者对于特殊字符:

\b([&#"'-_$^])?(?:ass)([&#"'-_$^])?\b
于 2015-04-17T03:56:58.710 回答