pub unsafe trait ReverseSearcher<'a>: Searcher<'a> {
    // Required method
    fn next_back(&mut self) -> SearchStep;

    // Provided methods
    fn next_match_back(&mut self) -> Option<(usize, usize)> { ... }
    fn next_reject_back(&mut self) -> Option<(usize, usize)> { ... }
}
🔬This is a nightly-only experimental API. (pattern #27721)
Expand description

反向搜索字符串模式。

这个 trait 提供了从字符串的后面 (右边) 开始搜索模式的非重叠匹配的方法。

如果该模式支持从后面搜索它,则将通过 Pattern trait 的关联 Searcher 类型实现。

这个 trait 返回的索引范围不需要与反转的正向搜索的索引范围完全匹配。

关于这个 trait 被标记为不安全的原因,请参见父 trait Searcher

Required Methods§

source

fn next_back(&mut self) -> SearchStep

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

从后面开始执行下一个搜索步骤。

  • 如果 haystack[a..b] 与模式匹配,则返回 Match(a, b)
  • 如果 haystack[a..b] 甚至部分不匹配,则返回 Reject(a, b)
  • 如果已访问 haystack 的每个字节,则返回 Done

直到 DoneMatchReject 值流将包含相邻,不重叠,覆盖整个 haystack 并位于 utf8 边界上的索引范围。

Match 结果需要包含整个匹配的模式,但是 Reject 结果可以分为任意多个相邻的片段。两个范围的长度都可以为零。

例如,模式 "aaa" 和 haystack "cbaaaaab" 可能会产生流 [Reject(7, 8), Match(4, 7), Reject(1, 4), Reject(0, 1)]

Provided Methods§

source

fn next_match_back(&mut self) -> Option<(usize, usize)>

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

查找下一个 Match 结果。 请参见 next_back()

source

fn next_reject_back(&mut self) -> Option<(usize, usize)>

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

查找下一个 Reject 结果。 请参见 next_back()

Implementors§

source§

impl<'a> ReverseSearcher<'a> for CharSearcher<'a>

source§

impl<'a, 'b> ReverseSearcher<'a> for CharSliceSearcher<'a, 'b>

source§

impl<'a, 'b> ReverseSearcher<'a> for StrSearcher<'a, 'b>

source§

impl<'a, 'b, const N: usize> ReverseSearcher<'a> for CharArrayRefSearcher<'a, 'b, N>

source§

impl<'a, F> ReverseSearcher<'a> for CharPredicateSearcher<'a, F>where F: FnMut(char) -> bool,

source§

impl<'a, const N: usize> ReverseSearcher<'a> for CharArraySearcher<'a, N>