4 个版本 (稳定版)
使用旧的 Rust 2015
1.15.1 | 2023年1月31日 |
---|---|
1.15.0 | 2022年7月2日 |
1.14.7 | 2017年11月28日 |
0.1.0 | 2017年11月27日 |
#764 in 文本处理
用于 sharexin
86KB
1K SLoC
egg-mode-text
类似于 twitter-text,但使用 rust 实现
此库试图将 twitter-text 移植到 Rust。它最初是 egg-mode 的一部分,但它与 egg-mode 在类型上完全不同,因此我将其拉出来成为一个独立的库。(此外,它充满了宏,所以也是降低 egg-mode 编译时间的尝试。 >_>
)
此库可用于计算推文的字符数,并从任意文本中提取 URL 和“实体”,例如 @-提及和标签。
例如,查看给定推文占用多少字符
use egg_mode_text::character_count;
let count = character_count("This is a test.", 23, 23);
assert_eq!(count, 15);
// URLs get replaced by a t.co URL of the given length
//
// This length is available from the Twitter API in `help/configuration`
let count = character_count("test.com", 23, 23);
assert_eq!(count, 23);
// Multiple URLs get shortened individually
let count =
character_count("Test https://test.com test https://test.com test.com test", 23, 23);
assert_eq!(count, 86);
提取 Twitter 使用的各种“实体”的子串
use egg_mode_text::{EntityKind, entities};
let text = "sample #text with a link to twitter.com";
let mut results = entities(text).into_iter();
let entity = results.next().unwrap();
assert_eq!(entity.kind, EntityKind::Url);
assert_eq!(entity.substr(text), "twitter.com");
let entity = results.next().unwrap();
assert_eq!(entity.kind, EntityKind::Hashtag);
assert_eq!(entity.substr(text), "#text");
assert_eq!(results.next(), None);
有关更多信息,请参阅 文档。
要在自己的项目中使用此 crate,请将以下内容添加到您的 Cargo.toml 中
[dependencies]
egg-mode-text = "1.15.1"
...并在 crate 根目录中添加以下内容
extern crate egg_mode_text;
许可证
egg-mode-text 在 Mozilla 公共许可证下授权,版本 2.0。有关详细信息,请参阅 LICENSE 文件。
依赖项
~2.7–4MB
~93K SLoC