alloc::str

# Module pattern

source
🔬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§

- CharArrayRefSearcherExperimental
  Associated type for `<&[char; N] as Pattern>::Searcher<'a>`.
- CharArraySearcherExperimental
  Associated type for `<[char; N] as Pattern>::Searcher<'a>`.
- CharPredicateSearcherExperimental
  Associated type for `<F as Pattern>::Searcher<'a>`.
- CharSearcherExperimental
  Associated type for `<char as Pattern>::Searcher<'a>`.
- CharSliceSearcherExperimental
  Associated type for `<&[char] as Pattern>::Searcher<'a>`.
- StrSearcherExperimental
  Associated type for `<&str as Pattern>::Searcher<'a>`.

## Enums§

- SearchStepExperimental
  Result of calling `Searcher::next()` or `ReverseSearcher::next_back()`.

## Traits§

- DoubleEndedSearcherExperimental
  A marker trait to express that a `ReverseSearcher` can be used for a `DoubleEndedIterator` implementation.
- PatternExperimental
  A string pattern.
- ReverseSearcherExperimental
  A reverse searcher for a string pattern.
- SearcherExperimental
  A searcher for a string pattern.