| 简体中文 | English |
一个高性能的 Rust 库,用于多模式字符串查找、验证、过滤和替换。
find_allvalidatefilterreplacerayon 的并行搜索find_all_batchfind_all_layeredfind_all_streaming在 Cargo.toml 中添加:
[dependencies]
sensitive-rs = "0.8.0"
use sensitive_rs::Filter;
fn main() {
let mut filter = Filter::new();
filter.add_words(&["rust", "filter", "敏感词"]);
let text = "hello rust, this is a filter demo 包含敏感词";
let found = filter.find_all(text);
println!("匹配到:{:?}", found);
let cleaned = filter.replace(text, '*');
println!("过滤后:{}", cleaned);
}
批量处理:
let texts = vec!["文本 1", "文本 2"];
let results = filter.find_all_batch( & texts);
分层匹配:
let layered = filter.find_all_layered("一些长文本");
流式处理大文件:
use std::fs::File;
use std::io::BufReader;
let reader = BufReader::new(File::open("large.txt") ? );
let stream_results = filter.find_all_streaming(reader) ?;
启用 cli 功能安装:
[dependencies]
sensitive-rs = { version = "0.8.0", features = ["cli"] }
或直接安装:
cargo install sensitive-rs --features cli
安装后可使用 sensitive 和 sensitive-rs 两个命令。
# 查找敏感词
sensitive check "含有赌博和色情内容"
# 验证文本(发现敏感词时 exit 1)
sensitive validate "干净文本"
# 替换敏感词
sensitive replace '*' "含有赌博内容"
# 移除敏感词
sensitive filter "含有赌博内容"
# 从文件读取
sensitive check --file input.txt
# 从 stdin 管道读取
echo "文本" | sensitive check
--dict <path> — 自定义词典文件--dict-all — 使用扩展词典(2.7 万词)--algorithm <algo> — 强制指定算法:aho-corasick、wumanber、regex--variant — 启用拼音和形近字变体检测--noise-pattern <regex> — 自定义噪声去除正则--json — JSON 输出格式--color — 强制彩色输出详细文档请参阅 Documentation.
可以选择下列任意一种许可证:
除非您明确声明,否则您有意提交的任何贡献将根据 Apache-2.0 或 MIT 许可证的定义,按上述双重许可进行许可,不附加任何其他条款或条件。