1 个不稳定版本
0.1.0 | 2022年11月9日 |
---|
814 在 文本处理 中
1,507 每月下载量
在 topgrade 中使用
15KB
157 行
regex-split
regex crate 不提供 split_inclusive,这在标准库中的字符串等中存在。有一个不稳定的功能允许使用正则表达式作为 split 的搜索模式,等等,但谁还想用不稳定的功能呢?
无论如何,这个库添加了 split_inclusive
和 split_inclusive_left
,二者的区别在于 split_inclusive_left
将分隔符放在子字符串的开头,而 split_inclusive
将它放在末尾。
用法
首先,添加该包。
$ cargo add regex-split
然后,在您想要使用额外方法的地方导入 regex_split::RegexSplit。消耗新方法很简单。
use regex_split::RegexSplit;
// split_inclusive
let re = Regex::new("\r?\n").unwrap();
let text = "This is just\na set of lines\r\nwith different newlines.";
let v: Vec<&str> = re.split_inclusive(text).collect();
assert_eq!(v, [
"This is just\n",
"a set of lines\r\n",
"with different newlines.",
]);
// split_inclusive_left
let re = Regex::new("(?m)^-").unwrap();
let text = "List of fruits:\n-apple\n-pear\n-banana";
let v: Vec<&str> = re.split_inclusive_left(text).collect();
assert_eq!(v, [
"List of fruits:\n",
"-apple\n",
"-pear\n",
"-banana",
]);
就是这样。
依赖项
~2.1–3MB
~53K SLoC