# [−][src]Module core::str::pattern

🔬 This is a nightly-only experimental API. (`pattern` #27721)

API not fully fleshed out and ready to be stabilized

The string Pattern API.

For more details, see the traits `Pattern`, `Searcher`, `ReverseSearcher` and `DoubleEndedSearcher`.

## Structs

CharPredicateSearcher | [ Experimental ] Associated type for `<F as Pattern<'a>>::Searcher`.
CharSearcher | [ Experimental ] Associated type for `<char as Pattern<'a>>::Searcher`.
CharSliceSearcher | [ Experimental ] Associated type for `<&[char] as Pattern<'a>>::Searcher`.
StrSearcher | [ Experimental ] Associated type for `<&str as Pattern<'a>>::Searcher`.

## Enums

SearchStep | [ Experimental ] Result of calling `Searcher::next()` or `ReverseSearcher::next_back()`.

## Traits

DoubleEndedSearcher | [ Experimental ] A marker trait to express that a `ReverseSearcher` can be used for a `DoubleEndedIterator` implementation.
Pattern | [ Experimental ] A string pattern.
ReverseSearcher | [ Experimental ] A reverse searcher for a string pattern.
Searcher | [ Experimental ] A searcher for a string pattern.

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)