gpt4 book ai didi

Java 和正则表达式 : Matching a substring that is not preceded by specific characters

转载 作者:搜寻专家 更新时间:2023-11-01 03:08:21 25 4
gpt4 key购买 nike

这是已被问及数百次的问题之一,但我很难根据自己的需要调整其他解决方案。

在我的 Java 应用程序中,我有一种方法可以检查聊天消息中的不良词语。它适用于我的大部分单词,但有一个特别(且流行)的脏话我似乎无法摆脱。这个词是“faen”(在相关语言中,这只是“撒旦”的现代俚语)。

使用模式“fa+e+n”来匹配多个 A 和 E 确实可行;然而,在这种语言中,“that couch”或“that sofa”的词是“sofaen”。我尝试了很多不同的方法,使用 [^so] 和 (?!=so) 的变体,但到目前为止我还没有找到一种方法来匹配一个而不匹配另一个。

这里的真正目标是能够匹配坏词,而不管元音的数量,也不管单词的组成部分之间是否有任何非字母。

以下是我正在尝试做的一些示例:

"String containing faen"                        Should match
"String containing sofaen" Should not match
"Non-letter-censored string with f-a@a-e.n" Should match
"Non-letter-censored string with sof-a@a-e.n" Should not match

有什么提示可以让我在这方面朝着正确的方向前进吗?

最佳答案

你想要像 \bf[^\s]+a[^\s]+e[^\s]+n[^\s]\b 这样的东西。请注意,这是正则表达式;如果你想要 Java 那么你需要使用 \\b[^\\s]+f[^\\s]+a[^\\s]+e[^\\s]+n[^\\s]\b.

另请注意,这并不完美,但确实可以处理您建议的情况。

关于Java 和正则表达式 : Matching a substring that is not preceded by specific characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14828586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com