Watched Words - 有没有办法阻止在某些词中使用星号,而不是将其用作通配符?

我做了一些搜索,但找不到答案,但如果这个问题已经被回答过了,我很抱歉。

简而言之,我们有一些用户没有使用监视词,而是通过用星号发布来规避系统。例如,他们说“f**k”。我们试图将其添加到监视词中,但它开始阻止任何以 f 开头并以 k 结尾的内容,例如 feedback、firetruck 和 Frederick。

有没有办法将上面的内容添加到监视词中,使其只查找该特定短语而不将其视为通配符?

2 个赞

我还没试过,但用反斜杠转义,比如 f\\*\\*k 应该可以。

3 个赞

似乎奏效了。谢谢你的建议。:slight_smile:

2 个赞

嗯,不对……我说得太早了。这不能阻止 Frederick,但也不能阻止 f**k。

1 个赞

我认为它在那里(https://regex101.com/r/YG5IIe/1)可以工作,所以我希望它也能在 Discourse 中工作。我很想知道为什么事实并非如此。

2 个赞

我猜这意味着必须启用正则表达式,对吗?

我们使用的是托管版本,稍微搜索了一下,我知道我应该联系团队,看看是否已启用。

1 个赞

看起来需要启用一个站点设置


在启用正则表达式后进行编辑,它仍然将“*”视为通配符。

3 个赞

但是它没有。Discourse 会将 f\\*\\*k 视为字面意思。因此,如果用户确实写了 f\\*\\*k,它就能正常工作。

2 个赞

没错。:+1: 该设置默认禁用,需要我们为托管站点启用。如果您希望我们这样做,请告诉我。:slight_smile:

我认为如果您切换过来,可能需要将所有现有的监视词转换为正则表达式格式并重新应用它们。

正则表达式可能比简化版本更难掌握,但只要您正确设置正则表达式表达式,它就可以更通用。为此,您需要一种能够识别多个变通方法的方法(f**k, f%ck, f&@k, fu<bla>ck)。尽管捕获所有这些可能是一场打地鼠游戏(尤其是当有人故意规避单词阻止而不是将其用作可接受/不可接受内容的指南时)。

4 个赞

我想知道——一般来说,我该如何观看单词 f**k?我们不关心所有变体等,但我该如何告诉 * 不是通配符而是字符?转义不起作用。

2 个赞

启用 watched words regular expressions 并将 f\\*\\*k 添加到 Block 似乎对我有效?您是在测试普通用户还是管理员? 实际上,Block 对管理员也有效。

3 个赞

作为管理员。但正如我在其他主题中所说,这是那些日子之一,而且我认为昨天同样糟糕——我没有告诉系统这是一个正则表达式。

我需要更多的咖啡。

1 个赞

顺便说一句,如果您还有其他关注的词语并且启用了正则表达式,它将影响添加到列表中的所有词语。这意味着您必须更改词语边界以避免部分匹配。

8 个赞