本文簡要介紹rust語言中 str.match_indices
的用法。
用法
pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P> where P: Pattern<'a>,
此字符串切片中模式的不相交匹配以及匹配開始處的索引的迭代器。
對於self
內重疊的pat
匹配,僅返回與第一個匹配對應的索引。
pattern 可以是 &str
、 char
、 char
的切片,或者確定字符是否匹配的函數或閉包。
迭代器行為
如果模式允許反向搜索並且正向/反向搜索產生相同的元素,則返回的迭代器將是 DoubleEndedIterator
。這適用於例如 char
,但不適用於 &str
。
如果該模式允許反向搜索但其結果可能與正向搜索不同,則可以使用 rmatch_indices
方法。
例子
基本用法:
let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
let v: Vec<_> = "1abcabc2".match_indices("abc").collect();
assert_eq!(v, [(1, "abc"), (4, "abc")]);
let v: Vec<_> = "ababa".match_indices("aba").collect();
assert_eq!(v, [(0, "aba")]); // only the first `aba`
相關用法
- Rust str.matches用法及代碼示例
- Rust str.make_ascii_uppercase用法及代碼示例
- Rust str.make_ascii_lowercase用法及代碼示例
- Rust str.strip_suffix用法及代碼示例
- Rust str.trim_left用法及代碼示例
- Rust str.char_indices用法及代碼示例
- Rust str.to_ascii_lowercase用法及代碼示例
- Rust str.trim用法及代碼示例
- Rust str.split_terminator用法及代碼示例
- Rust str.to_uppercase用法及代碼示例
- Rust str.starts_with用法及代碼示例
- Rust str.escape_default用法及代碼示例
- Rust str.rmatches用法及代碼示例
- Rust str.trim_right用法及代碼示例
- Rust str.rsplit_terminator用法及代碼示例
- Rust str.rsplit_once用法及代碼示例
- Rust str.split_once用法及代碼示例
- Rust str.len用法及代碼示例
- Rust str.chars用法及代碼示例
- Rust str.trim_left_matches用法及代碼示例
- Rust str.rsplit用法及代碼示例
- Rust str.eq_ignore_ascii_case用法及代碼示例
- Rust str.rfind用法及代碼示例
- Rust str.is_ascii用法及代碼示例
- Rust str.find用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 str.match_indices。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。