当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust str.rsplitn用法及代码示例


本文简要介绍rust语言中 str.rsplitn 的用法。

用法

pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P> where    P: Pattern<'a>,    <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

此字符串切片的子字符串的迭代器,由模式分隔,从字符串的末尾开始,限制为最多返回 n 个项目。

如果返回 n 子字符串,则最后一个子字符串(第 n 个子字符串)将包含字符串的其余部分。

pattern 可以是 &str char char 的切片,或者确定字符是否匹配的函数或闭包。

迭代器行为

返回的迭代器不会是双端的,因为它的支持效率不高。

要从前面拆分,可以使用 splitn 方法。

例子

简单模式:

let v: Vec<&str> = "Mary had a little lamb".rsplitn(3, ' ').collect();
assert_eq!(v, ["lamb", "little", "Mary had a"]);

let v: Vec<&str> = "lionXXtigerXleopard".rsplitn(3, 'X').collect();
assert_eq!(v, ["leopard", "tiger", "lionX"]);

let v: Vec<&str> = "lion::tiger::leopard".rsplitn(2, "::").collect();
assert_eq!(v, ["leopard", "lion::tiger"]);

更复杂的模式,使用闭包:

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
assert_eq!(v, ["ghi", "abc1def"]);

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 str.rsplitn。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。