Movatterモバイル変換


[0]ホーム

URL:


Pattern

std::str::pattern

TraitPattern 

Source
pub trait Pattern:Sized {    typeSearcher<'a>:Searcher<'a>;    // Required method    fninto_searcher(self, haystack: &str) -> Self::Searcher<'_>;    // Provided methods    fnis_contained_in(self, haystack: &str) ->bool { ... }    fnis_prefix_of(self, haystack: &str) ->bool { ... }    fnis_suffix_of<'a>(self, haystack: &'astr) ->boolwhere Self::Searcher<'a>:ReverseSearcher<'a> { ... }    fnstrip_prefix_of(self, haystack: &str) ->Option<&str> { ... }    fnstrip_suffix_of<'a>(self, haystack: &'astr) ->Option<&'astr>where Self::Searcher<'a>:ReverseSearcher<'a> { ... }    fnas_utf8_pattern(&self) ->Option<Utf8Pattern<'_>> { ... }}
🔬This is a nightly-only experimental API. (pattern #27721)
Expand description

A string pattern.

APattern expresses that the implementing typecan be used as a string pattern for searching in a&str.

For example, both'a' and"aa" are patterns thatwould match at index1 in the string"baaaab".

The trait itself acts as a builder for an associatedSearcher type, which does the actual work of findingoccurrences of the pattern in a string.

Depending on the type of the pattern, the behavior of methods likestr::find andstr::contains can change. The table below describessome of those behaviors.

Pattern typeMatch condition
&stris substring
charis contained in string
&[char]any char in slice is contained in string
F: FnMut(char) -> boolF returnstrue for a char in string
&&stris substring
&Stringis substring

§Examples

// &strassert_eq!("abaaa".find("ba"),Some(1));assert_eq!("abaaa".find("bac"),None);// charassert_eq!("abaaa".find('a'),Some(0));assert_eq!("abaaa".find('b'),Some(1));assert_eq!("abaaa".find('c'),None);// &[char; N]assert_eq!("ab".find(&['b','a']),Some(0));assert_eq!("abaaa".find(&['a','z']),Some(0));assert_eq!("abaaa".find(&['c','d']),None);// &[char]assert_eq!("ab".find(&['b','a'][..]),Some(0));assert_eq!("abaaa".find(&['a','z'][..]),Some(0));assert_eq!("abaaa".find(&['c','d'][..]),None);// FnMut(char) -> boolassert_eq!("abcdef_z".find(|ch| ch >'d'&& ch <'y'),Some(4));assert_eq!("abcddd_z".find(|ch| ch >'d'&& ch <'y'),None);

Required Associated Types§

Source

typeSearcher<'a>:Searcher<'a>

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

Associated searcher for this pattern

Required Methods§

Source

fninto_searcher(self, haystack: &str) -> Self::Searcher<'_>

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

Constructs the associated searcher fromself and thehaystack to search in.

Provided Methods§

Source

fnis_contained_in(self, haystack: &str) ->bool

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

Checks whether the pattern matches anywhere in the haystack

Source

fnis_prefix_of(self, haystack: &str) ->bool

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

Checks whether the pattern matches at the front of the haystack

Source

fnis_suffix_of<'a>(self, haystack: &'astr) ->bool
where Self::Searcher<'a>:ReverseSearcher<'a>,

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

Checks whether the pattern matches at the back of the haystack

Source

fnstrip_prefix_of(self, haystack: &str) ->Option<&str>

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

Removes the pattern from the front of haystack, if it matches.

Source

fnstrip_suffix_of<'a>(self, haystack: &'astr) ->Option<&'astr>
where Self::Searcher<'a>:ReverseSearcher<'a>,

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

Removes the pattern from the back of haystack, if it matches.

Source

fnas_utf8_pattern(&self) ->Option<Utf8Pattern<'_>>

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

Returns the pattern as utf-8 bytes if possible.

Dyn Compatibility§

This trait isnotdyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

implPattern forchar

Searches for chars that are equal to a givenchar.

§Examples

assert_eq!("Hello world".find('o'),Some(4));
Source§

impl<'b>Pattern for &'bstr

Non-allocating substring search.

Will handle the pattern"" as returning empty matches at each characterboundary.

§Examples

assert_eq!("Hello world".find("world"),Some(6));
Source§

typeSearcher<'a> =StrSearcher<'a, 'b>

Source§

impl<'b>Pattern for &'bString

A convenience impl that delegates to the impl for&str.

§Examples

assert_eq!(String::from("Hello world").find("world"),Some(6));
Source§

typeSearcher<'a> = <&'bstr asPattern>::Searcher<'a>

Source§

impl<'b>Pattern for &'b [char]

Searches for chars that are equal to any of thechars in the slice.

§Examples

assert_eq!("Hello world".find(&['o','l'][..]),Some(2));assert_eq!("Hello world".find(&['h','w'][..]),Some(6));
Source§

impl<'b, 'c>Pattern for &'c &'bstr

Delegates to the&str impl.

Source§

typeSearcher<'a> =StrSearcher<'a, 'b>

Source§

impl<'b, const N:usize>Pattern for &'b [char;N]

Searches for chars that are equal to any of thechars in the array.

§Examples

assert_eq!("Hello world".find(&['o','l']),Some(2));assert_eq!("Hello world".find(&['h','w']),Some(6));
Source§

impl<F>Pattern for F
where F:FnMut(char) ->bool,

Searches forchars that match the given predicate.

§Examples

assert_eq!("Hello world".find(char::is_uppercase),Some(0));assert_eq!("Hello world".find(|c|"aeiou".contains(c)),Some(1));
Source§

impl<const N:usize>Pattern for [char;N]

Searches for chars that are equal to any of thechars in the array.

§Examples

assert_eq!("Hello world".find(['o','l']),Some(2));assert_eq!("Hello world".find(['h','w']),Some(6));

[8]ページ先頭

©2009-2026 Movatter.jp