5 个不稳定版本
0.3.1 | 2022年7月9日 |
---|---|
0.3.0 | 2022年7月9日 |
0.2.0 | 2022年6月3日 |
0.1.1 | 2022年4月18日 |
0.1.0 | 2022年4月18日 |
在 解析工具 中排名 #250
87KB
1.5K SLoC
strtools
strtools 是一个 Rust 库,包含各种有用的字符串扩展。它正在积极开发中,并计划添加更多功能,欢迎批评和建议。
示例
use strtools::StrTools;
// split a string by some separator but ignore escaped ones
let parts: Vec<_> = r"this string\ is split by\ spaces unless they are\ escaped"
.split_non_escaped('\\', ' ')
.collect();
assert_eq!(
parts,
[
"this",
"string is",
"split",
"by spaces",
"unless",
"they",
"are escaped"
]
);
许可证
strtools 目前使用 MIT 许可证。
lib.rs
:
该包提供了 StrTools
特征,该特征公开了各种辅助函数,用于处理字符串,例如处理用户输入。
示例
use strtools::StrTools;
// split a string by some separator but ignore escaped ones
let parts: Vec<_> = r"this string\ is split by\ spaces and commas, unless they are\ escaped"
.split_non_escaped_sanitize('\\', [' ', ','])?
.collect();
assert_eq!(
parts,
[
"this",
"string is",
"split",
"by spaces",
"and",
"commas",
"",
"unless",
"they",
"are escaped"
]
);
use strtools::StrTools;
let parts: Vec<_> = r"\.\/.*s(\d\d)e(\d\d[a-d])/S$1E$2/gu"
.split_non_escaped_sanitize('\\', '/')?
.collect();
// parsing user input regex rules like `<rule>/<replace>/<flags>`
// the rule contained an escaped separator but we don't want to
// actually escape it for the regex engine
assert_eq!(parts, [r"\./.*s(\d\d)e(\d\d[a-d])", "S$1E$2", "gu"]);
依赖项
~1.2–1.8MB
~34K SLoC