c# - 正则表达式检测单词中的 smart-alec 空格(!)
问题描述
我正在尝试创建一个正则表达式来阻止“忘记”这个词。聪明的 alec 仍然逍遥法外:
"f o r g e t you", and
"f o r
g e t you" (using \r\n)
在我用
$(?<!(FORGET[\s]*))
我正在尝试使用$(<!(F\s*O\s*R\s*G\s*E\s*T))
- 在字母之间捕获空白 0 次或更多次的思考过程......唉,这不起作用。我希望我不会太远,但我会很感激一些帮助。
谢谢
解决方案
例如,在聊天室中查找禁用词的一种方法是创建它们的所有可能表示形式(包括形态学)的字典,并将特殊字符/序列(如“@”)转换为“a”或“JI”到“Л”。
到目前为止我发现的最佳方式:
- 执行特殊序列的转换 (@->a)。
- 将纯字母字符连接到一个大行中,删除重复字符 (baaaaaaneeeedddd)。
- 从此合并构建后缀树。
- 在后缀树中查找禁止的子序列。
- 对 10 万条消息进行测试。
- 修复一些常见的bug。
它是相当有效和最佳的验证,可以在客户端上执行,而且很难以这样的方式组合单词,它会产生误报。
推荐阅读
- python - Selenium 使用 vscode 进行行为调试 - python
- sql - SQL / Celonis - 字段仅包含数字,删除其他任何内容
- javascript - Qt Installer 更改现有页面
- spring-boot - 从 String 转换为 GuardedString 时 Spring Boot 中属性的自定义数据绑定问题
- firebase - 在 null 上调用了 Getter 'Length'
- c++ - 'fatal error: 'wchar.h' file not found' 新的 macOS 11.3 更新错误
- c++ - 如何在 C++ 中的 VS Code 中摆脱终端行尾的“%”字符
- postgresql - 组合 3 个表的查询
- python - 你如何解释这个 Python 程序的输出?
- python - 在具有相同结尾的组内的数据框中填充日期