🔬This is a nightly-only experimental API. (
pattern #27721)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));Structs§
- Char
Array RefSearcher Experimental Associated type for<&[char; N] as Pattern>::Searcher<'a>. - Char
Array Searcher Experimental Associated type for<[char; N] as Pattern>::Searcher<'a>. - Char
Predicate Searcher Experimental Associated type for<F as Pattern>::Searcher<'a>. - Char
Searcher Experimental Associated type for<char as Pattern>::Searcher<'a>. - Char
Slice Searcher Experimental Associated type for<&[char] as Pattern>::Searcher<'a>. - StrSearcher
Experimental Associated type for<&str as Pattern>::Searcher<'a>.
Enums§
- Search
Step Experimental Result of callingSearcher::next()orReverseSearcher::next_back().
Traits§
- Double
Ended Searcher Experimental A marker trait to express that aReverseSearchercan be used for aDoubleEndedIteratorimplementation. - Pattern
Experimental A string pattern. - Reverse
Searcher Experimental A reverse searcher for a string pattern. - Searcher
Experimental A searcher for a string pattern.