6 个版本 (2 个稳定版本)
1.0.1 | 2021 年 7 月 9 日 |
---|---|
1.0.0 | 2021 年 5 月 4 日 |
0.3.0 | 2021 年 3 月 13 日 |
0.2.0 | 2020 年 4 月 7 日 |
0.1.1 | 2020 年 4 月 6 日 |
#383 在 文本处理
每月 <1,409 次下载
在 5 个 crate 中使用
1MB
66K SLoC
世俗
提供字符或字符串的无变音符号版本。
例如,对于 é
返回 e
。
世俗的字符查找是静态表的内联查找,这意味着可以在性能敏感的代码中使用它。
世俗还执行(可选)Unicode 规范化。
删除变音符号和一些 Unicode 艺术品的一个常见用例是简化搜索
(在 broot 中忽略变音符号的规范化搜索:用户键入了 rève
)
声明
默认情况下,变音符号移除仅在 ASCII 字符上执行,因此包含了一个较小的表。
如果您想处理整个 BMP,请使用 "bmp" 功能"(缺点是二进制文件更大,因为它包含一个大映射)。
默认导入
[dependencies]
secular = "0.3"
对于更多字符(BMP)
[dependencies]
secular = { version="0.3", features=["bmp"] }
使用 Unicode 规范化函数(使用 unicode-normalization crate)
[dependencies]
secular = { version="0.3", features=["normalization"] }
或
[dependencies]
secular = { version="0.3", features=["bmp","normalization"] }
此功能是 unicode-normalization crate 的可选功能(请注意,许多其他 crate 也使用它,因此您的处理应用程序可能已经包含它)。
用法
字符
use secular::*;
let s = "Comunicações"; // normalized string (length=12)
let chars: Vec<char> = s.chars().collect();
assert_eq!(chars.len(), 12);
assert_eq!(chars[0], 'C');
assert_eq!(lower_lay_char(chars[0]), 'c');
assert_eq!(chars[8], 'ç');
assert_eq!(lower_lay_char(chars[8]), 'c');
字符串
use secular::*;
let s = "Comunicações"; // unnormalized string (length=14)
assert_eq!(s.chars().count(), 14);
let s = normalized_lower_lay_string(s);
assert_eq!(s.chars().count(), 12);
assert_eq!(s, "comunicacoes");