#unicode-characters #unicode #interval #character-set #code-point #string-matching

unicode-intervals

通过包含/排除类别、范围和自定义字符集来搜索 Unicode 代码点区间

4 个版本

0.2.0 2023年4月24日
0.1.2 2023年4月23日
0.1.1 2023年4月23日
0.1.0 2023年4月23日

1300文本处理

Download history 11/week @ 2024-04-03 2/week @ 2024-04-10 142/week @ 2024-04-17 21/week @ 2024-04-24 23/week @ 2024-05-01 14/week @ 2024-05-08 12/week @ 2024-05-22 17/week @ 2024-05-29 2/week @ 2024-06-05 23/week @ 2024-06-12 4/week @ 2024-06-19

62 每月下载量
fix-name-case 中使用

MIT/Apache

675KB
33K SLoC

unicode-intervals

github crates.io docs.rs build status codecov.io

此库提供了一种通过类别、范围和自定义字符集搜索 Unicode 代码点区间的途径。

unicode-intervals 的主要目的是简化生成符合特定标准的字符串。

[dependencies]
unicode-intervals = "0.1"

示例

以下示例将生成小于 128 的上标和下标字母的代码点区间,并包括 字符。

use unicode_intervals::UnicodeCategory;

let intervals = unicode_intervals::query()
    .include_categories(
        UnicodeCategory::UPPERCASE_LETTER | 
        UnicodeCategory::LOWERCASE_LETTER
    )
    .max_codepoint(128)
    .include_characters("")
    .intervals()
    .expect("Invalid query input");
assert_eq!(intervals, &[(65, 90), (97, 122), (9731, 9731)]);

IntervalSet 用于对底层代码点进行索引访问

let interval_set = unicode_intervals::query()
    .max_codepoint(128)
    .interval_set()
    .expect("Invalid query input");
// Get 10th codepoint in this interval set
assert_eq!(interval_set.codepoint_at(10), Some('K' as u32));
assert_eq!(interval_set.index_of('K'), Some(10));

查询特定 Unicode 版本

use unicode_intervals::UnicodeVersion;

let intervals = UnicodeVersion::V11_0_0.query()
    .max_codepoint(128)
    .include_characters("")
    .intervals()
    .expect("Invalid query input");
assert_eq!(intervals, &[(0, 128), (9731, 9731)]);

限制输出到特定范围内的代码点

let intervals = unicode_intervals::query()
    .min_codepoint(65)
    .max_codepoint(128)
    .intervals()
    .expect("Invalid query input");
assert_eq!(intervals, &[(65, 128)])

包含或排除特定字符

use unicode_intervals::UnicodeCategory;

let intervals = unicode_intervals::query()
    .include_categories(UnicodeCategory::PARAGRAPH_SEPARATOR)
    .include_characters("-123")
    .intervals()
    .expect("Invalid query input");
assert_eq!(intervals, &[(45, 45), (49, 51), (8233, 8233)])

Unicode 版本支持

unicode-intervals 支持 Unicode 9.0.0 - 15.0.0。

许可证

许可协议为 Apache License, Version 2.0 或 MIT 许可证,任选其一。
除非你明确说明,否则任何贡献,根据 Apache-2.0 许可证定义,均应按上述方式双重许可,不附加任何额外条款或条件。

无运行时依赖