🔬This is a nightly-only experimental API. (
pattern
#27721)Expand description
字符串模式 API。
Pattern API 提供了泛型机制,用于在搜索字符串时使用不同的模式类型。
有关更多详细信息,请参见 traits Pattern
,Searcher
,ReverseSearcher
和 DoubleEndedSearcher
。
尽管此 API 不稳定,但是它通过 str
类型的稳定 API 公开。
Examples
Pattern
是 &str
、char
、char
的切片以及实现 FnMut(char) -> bool
的函数和闭包的稳定 API 中的 implemented。
let s = "Can you find a needle in a haystack?";
// &str 模式
assert_eq!(s.find("you"), Some(4));
// 字符模式
assert_eq!(s.find('n'), Some(2));
// 字符模式数组
assert_eq!(s.find(&['a', 'e', 'i', 'o', 'u']), Some(1));
// 切片的字符模式
assert_eq!(s.find(&['a', 'e', 'i', 'o', 'u'][..]), Some(1));
// 闭包模式
assert_eq!(s.find(|c: char| c.is_ascii_punctuation()), Some(35));
RunStructs
- CharArrayRefSearcherExperimental
<&[char; N] as Pattern<'a>>::Searcher
的关联类型。 - CharArraySearcherExperimental
<[char; N] as Pattern<'a>>::Searcher
的关联类型。 - CharPredicateSearcherExperimental
<F as Pattern<'a>>::Searcher
的关联类型。 - CharSearcherExperimental
<char as Pattern<'a>>::Searcher
的关联类型。 - CharSliceSearcherExperimental
<&[char] as Pattern<'a>>::Searcher
的关联类型。 - StrSearcherExperimental
<&str as Pattern<'a>>::Searcher
的关联类型。
Enums
- SearchStepExperimental调用
Searcher::next()
或ReverseSearcher::next_back()
的结果。
Traits
- DoubleEndedSearcherExperimental一个标记 trait,表示
ReverseSearcher
可用于DoubleEndedIterator
实现。 - PatternExperimental字符串模式。
- ReverseSearcherExperimental反向搜索字符串模式。
- SearcherExperimental字符串模式的搜索者。