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 在 文本处理 中
62 每月下载量
在 fix-name-case 中使用
675KB
33K SLoC
unicode-intervals
此库提供了一种通过类别、范围和自定义字符集搜索 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 许可证定义,均应按上述方式双重许可,不附加任何额外条款或条件。