11 个版本 (6 个稳定版)

1.5.0 2024年5月28日
1.4.0 2023年11月16日
1.3.2 2023年10月3日
1.2.1 2023年4月18日
0.0.1 2021年4月29日

#6 in 国际化 (i18n)

Download history 4134/week @ 2024-05-03 4035/week @ 2024-05-10 5224/week @ 2024-05-17 5300/week @ 2024-05-24 4222/week @ 2024-05-31 4415/week @ 2024-06-07 6083/week @ 2024-06-14 5192/week @ 2024-06-21 5506/week @ 2024-06-28 7109/week @ 2024-07-05 8166/week @ 2024-07-12 9385/week @ 2024-07-19 9785/week @ 2024-07-26 10108/week @ 2024-08-02 13356/week @ 2024-08-09 9779/week @ 2024-08-16

44,261 每月下载量
63 个 Crates 中使用 (14 个直接使用)

Unicode-3.0

2.5MB
25K SLoC

icu_segmenter crates.io

按行、图形符号、单词和句子分割字符串。

此模块作为其自己的 crate (icu_segmenter) 和作为 icu crate 的一部分发布。有关 ICU4X 项目的更多详细信息,请参阅后者。

此模块包含以下规则的分割器实现。

示例

换行

查找换行机会

use icu::segmenter::LineSegmenter;

let segmenter = LineSegmenter::new_auto();

let breakpoints: Vec<usize> = segmenter
    .segment_str("Hello World. Xin chào thế giới!")
    .collect();
assert_eq!(&breakpoints, &[0, 6, 13, 17, 23, 29, 36]);

请参阅 LineSegmenter 了解更多示例。

图形符号群分割

查找所有图形符号群边界

use icu::segmenter::GraphemeClusterSegmenter;

let segmenter = GraphemeClusterSegmenter::new();

let breakpoints: Vec<usize> = segmenter
    .segment_str("Hello World. Xin chào thế giới!")
    .collect();
assert_eq!(
    &breakpoints,
    &[
        0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
        19, 21, 22, 23, 24, 25, 28, 29, 30, 31, 34, 35, 36
    ]
);

请参阅 GraphemeClusterSegmenter 了解更多示例。

单词分割

查找所有单词边界

use icu::segmenter::WordSegmenter;

let segmenter = WordSegmenter::new_auto();

let breakpoints: Vec<usize> = segmenter
    .segment_str("Hello World. Xin chào thế giới!")
    .collect();
assert_eq!(
    &breakpoints,
    &[0, 5, 6, 11, 12, 13, 16, 17, 22, 23, 28, 29, 35, 36]
);

请参阅 WordSegmenter 了解更多示例。

句子分割

将字符串分割成句子

use icu::segmenter::SentenceSegmenter;

let segmenter = SentenceSegmenter::new();

let breakpoints: Vec<usize> = segmenter
    .segment_str("Hello World. Xin chào thế giới!")
    .collect();
assert_eq!(&breakpoints, &[0, 13, 36]);

请参阅SentenceSegmenter获取更多示例。

更多信息

有关开发、作者身份、贡献等更多信息,请访问ICU4X 主页

依赖项