4 个版本 (2 个重大变更)
0.3.0 | 2022年11月16日 |
---|---|
0.2.0 | 2020年11月24日 |
0.1.1 | 2019年9月24日 |
0.1.0 | 2019年9月24日 |
#1012 in 算法
2,175 每月下载量
在 3 crates 中使用
18KB
406 行
描述
这是一个简单的 Rust 粗口过滤器库。
更多详细信息,请参阅文档。
lib.rs
:
该包实现了一个简单但功能强大的粗口过滤器。
虽然这个过滤器仍然可以被技术上绕过,但目标是,当粗口通过过滤器时,它几乎与原始单词不相像。这是通过绕过常见的粗口过滤器绕过方法来实现的,比如在字母之间插入空格或特殊字符(如F_U_C_K
)或使用类似外观的字符代替其他字符(如SH!T
)。
但请注意,这个过滤器远非完美。如果人们 真的 想要诅咒,他们可以绕过这个过滤器。
用法
Censor
枚举是用于审查字符串的主要对象。它本质上是一组要过滤的单词。包含大多数人认为的粗口单词的 Standard
变体是一个好的基础。可以通过 +
和 +=
运算符添加更多集和单个单词,可以通过 -
和 -=
运算符删除集和单词。
use censor::*;
let censor = Censor::Standard;
// Use `Censor::check` to check if a string contains a profanity
assert!(censor.check("fuck"));
assert!(censor.check("FUCK"));
assert!(censor.check("FuCk"));
assert!(censor.check("fμ¢κ"));
assert!(censor.check("f!u!c!k"));
assert!(censor.check("F_u c_K"));
assert!(censor.check("fuuuuuuuck"));
assert!(!censor.check("fluff truck"));
assert!(!censor.check("fukushima"));
// Use `Censor::censor` to censor a string with asterisks
assert_eq!("*_*_*_*_*", censor.censor("₱_û_$_$_¥"));
assert_eq!("**** that ****, dude", censor.censor("fuck that shit, dude"));
assert_eq!("******* yoouuu", censor.censor("fuuuuck yoouuu"));
// Use `Censor::replace` to replace censored words with any grawlix string
assert_eq!("What the !@#$?", censor.replace("What the fuck?", "!@#$%"));
// You can combine `Censor`s and add your own words
let censor = Standard + Zealous + Sex + "dong";
assert_eq!(
"Woops, I dropped my monster ******, that I use for my magnum ****",
censor.censor("Woops, I dropped my monster condom, that I use for my magnum dong")
);
// You can remove words from `Censor`s too
let censor = Standard - "ass";
assert!(!censor.check("I don't care if people say 'ass'"));
// Overlapping censored words are fully censored
let censor = Standard + Sex;
assert_eq!("**********", censor.censor("shititties"));
assert_eq!("*************", censor.censor("blowjoboobies"))
依赖项
~49KB