本文简要介绍rust语言中 Trait alloc::str::pattern::Pattern
的用法。
用法
pub trait Pattern<'a> {
type Searcher: Searcher<'a>;
fn into_searcher(self, haystack: &'a str) -> Self::Searcher;
fn is_contained_in(self, haystack: &'a str) -> bool { ... }
fn is_prefix_of(self, haystack: &'a str) -> bool { ... }
fn is_suffix_of(self, haystack: &'a str) -> bool where Self::Searcher: ReverseSearcher<'a>,
{ ... }
fn strip_prefix_of(self, haystack: &'a str) -> Option<&'a str> { ... }
fn strip_suffix_of(self, haystack: &'a str) -> Option<&'a str> where Self::Searcher: ReverseSearcher<'a>,
{ ... }
}
一种字符串模式。
Pattern<'a>
表示实现类型可以用作在 &'a str
中搜索的字符串模式。
例如,'a'
和 "aa"
都是匹配字符串 "baaaab"
中索引 1
的模式。
特征本身充当关联 Searcher
类型的构建器,该类型执行查找字符串中出现的模式的实际工作。
根据模式的类型, str::find
和 str::contains
等方法的行为可能会发生变化。下表说明了其中一些行为。
图案类型 | 匹配条件 |
---|---|
&str | 是子串 |
char | 包含在字符串中 |
&[char] | 切片中的任何字符都包含在字符串中 |
F: FnMut(char) -> bool | F 为字符串中的字符返回 true |
&&str | 是子串 |
&String | 是子串 |
例子
// &str
assert_eq!("abaaa".find("ba"), Some(1));
assert_eq!("abaaa".find("bac"), None);
// char
assert_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) -> bool
assert_eq!("abcdef_z".find(|ch| ch > 'd' && ch < 'y'), Some(4));
assert_eq!("abcddd_z".find(|ch| ch > 'd' && ch < 'y'), None);
相关用法
- Rust Pattern用法及代码示例
- Rust Path.components用法及代码示例
- Rust PathBuf.with_capacity用法及代码示例
- Rust Path.is_symlink用法及代码示例
- Rust Path.canonicalize用法及代码示例
- Rust Path.is_relative用法及代码示例
- Rust Path.file_stem用法及代码示例
- Rust Path.to_string_lossy用法及代码示例
- Rust Path.display用法及代码示例
- Rust PathBuf.into_os_string用法及代码示例
- Rust PathBuf.pop用法及代码示例
- Rust Path.ancestors用法及代码示例
- Rust Path用法及代码示例
- Rust Path.is_dir用法及代码示例
- Rust Path.strip_prefix用法及代码示例
- Rust PathBuf.set_file_name用法及代码示例
- Rust Path.file_prefix用法及代码示例
- Rust Path.exists用法及代码示例
- Rust Path.read_link用法及代码示例
- Rust PathBuf.push用法及代码示例
- Rust Path.parent用法及代码示例
- Rust Path.is_absolute用法及代码示例
- Rust Path.new用法及代码示例
- Rust PathBuf.new用法及代码示例
- Rust PathBuf用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Trait alloc::str::pattern::Pattern。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。