6 个版本
| 0.2.0 | 2024年6月6日 |
|---|---|
| 0.1.4 | 2024年6月6日 |
#861 在 算法 中
每月 30 次下载
8KB
149 行
ruzzy_rs
基于 Levenshtein 距离的 Rust 通用且灵活的模糊匹配器
安装
cargo add ruzzy
用法
此软件包根据 Levenshtein 距离(也称为编辑距离)执行模糊匹配。这意味着将字符串 A 转换为字符串 B 所需的字符串编辑越少,A 和 B 越相似。
fuzzy_match
此软件包公开的唯一函数是
fn fuzzy_match<'a, Value: 'a>(needle: &'a String, haystack: &'a Vec<(String, Value)>, config: FuzzyConfig) -> Option<&'a Value>;
其中
needle是要匹配的字符串。haystack是键值对的集合,其中键部分与needle进行匹配config允许您调整匹配过程。
此函数返回一个 Option,可能包含最相似键的对应值。
FuzzyConfig
FuzzyConfig 允许您调整匹配过程。目前,支持以下配置
threshold:如果编辑距离高于此threshold,则haystack中的键不可接受,并且不被视为匹配。insertion_penalty:在needle中插入字符的成本(默认:1)。deletion_penalty:在needle中删除字符的成本(默认:1)。substitution_penalty:字符替换的成本(默认:2)。