Expand description
The string Pattern API.
The Pattern API provides a generic mechanism for using different pattern types when searching through a string.
For more details, see the traits Pattern
, Searcher
,
ReverseSearcher
, and DoubleEndedSearcher
.
Although this API is unstable, it is exposed via stable APIs on the
str
type.
Examples
Pattern
is implemented in the stable API for
&str
, char
, slices of char
, and functions and closures
implementing FnMut(char) -> bool
.
let s = "Can you find a needle in a haystack?";
// &str pattern
assert_eq!(s.find("you"), Some(4));
// char pattern
assert_eq!(s.find('n'), Some(2));
// array of chars pattern
assert_eq!(s.find(&['a', 'e', 'i', 'o', 'u']), Some(1));
// slice of chars pattern
assert_eq!(s.find(&['a', 'e', 'i', 'o', 'u'][..]), Some(1));
// closure pattern
assert_eq!(s.find(|c: char| c.is_ascii_punctuation()), Some(35));
RunStructs
Associated type for <&[char; N] as Pattern<'a>>::Searcher
.
Associated type for <[char; N] as Pattern<'a>>::Searcher
.
Associated type for <F as Pattern<'a>>::Searcher
.
Associated type for <char as Pattern<'a>>::Searcher
.
Associated type for <&[char] as Pattern<'a>>::Searcher
.
Associated type for <&str as Pattern<'a>>::Searcher
.
Enums
Result of calling Searcher::next()
or ReverseSearcher::next_back()
.
Traits
A marker trait to express that a ReverseSearcher
can be used for a DoubleEndedIterator
implementation.
A string pattern.
A reverse searcher for a string pattern.
A searcher for a string pattern.