我是正则表达式的新手,我正在为评论功能(在 C# 中)编写一个高级亵渎过滤器。只是为了节省时间,我知道所有的过滤器都可以被愚弄,不管它们有多好,你不必告诉我。我只是想让它比基本的单词替换更先进一点。我已将任务分成几个单独的方法,这就是其中之一。
我需要的是一段特定的正则表达式,它可以捕获如下字符串:
s_h_i_t
s h i t
S<>H<>I<>T
s_/h_/i_/t
s***h***i***t
你明白了。我想我正在寻找的是一个正则表达式,上面写着“一个或多个不是字母数字的字符”。这应该包括空格和您可以在标准(西方)键盘上键入的所有特殊字符。如果可能的话,它还应该包括换行符,这样它就会捕捉到类似的东西
s
h
i
t
应始终至少存在一个字符,以避免可能的误报,例如
Finish it.
这当然意味着像
sh_it
不会被抓住,但正如我所说,没关系,它不必是完美的。我只需要正则表达式,我可以自己拆分单词并插入正则表达式。我在 C# 代码中设置了 RegexOptions.IgnoreCase 选项,因此实际单词中的字符大小写不是问题。此外,这个正则表达式不应该担心“leetspeek”,即单词的一些实际字母被其他字符替换:
sh1t
我有一种不同的方法来处理这个问题。预先感谢您的帮助。