當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust str.rsplit用法及代碼示例


本文簡要介紹rust語言中 str.rsplit 的用法。

用法

pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P> where    P: Pattern<'a>,    <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

給定字符串切片的子字符串的迭代器,由與模式匹配的字符分隔並以相反的順序產生。

pattern 可以是 &str char char 的切片,或者確定字符是否匹配的函數或閉包。

迭代器行為

返回的迭代器要求模式支持反向搜索,如果正向/反向搜索產生相同的元素,它將是 DoubleEndedIterator

對於從前麵迭代,可以使用 split 方法。

例子

簡單模式:

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

let v: Vec<&str> = "".rsplit('X').collect();
assert_eq!(v, [""]);

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

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

更複雜的模式,使用閉包:

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

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 str.rsplit。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。