pub struct Pattern { /* private fields */ }
Expand description
A compiled Unix shell style pattern.
-
?
matches any single character. -
*
matches any (possibly empty) sequence of characters. -
**
matches the current directory and arbitrary subdirectories. This sequence must form a single path component, so both**a
andb**
are invalid and will result in an error. A sequence of more than two consecutive*
characters is also invalid. -
[...]
matches any character inside the brackets. Character sequences can also specify ranges of characters, as ordered by Unicode, so e.g.[0-9]
specifies any character between 0 and 9 inclusive. An unclosed bracket is invalid. -
[!...]
is the negation of[...]
, i.e. it matches any characters not in the brackets. -
The metacharacters
?
,*
,[
,]
can be matched by using brackets (e.g.[?]
). When a]
occurs immediately following[
or[!
then it is interpreted as being part of, rather then ending, the character set, so]
and NOT]
can be matched by[]]
and[!]]
respectively. The-
character can be specified inside a character sequence pattern by placing it at the start or the end, e.g.[abc-]
.
Implementations§
source§impl Pattern
impl Pattern
sourcepub fn new(pattern: &str) -> Result<Self, PatternError>
pub fn new(pattern: &str) -> Result<Self, PatternError>
This function compiles Unix shell style patterns.
An invalid glob pattern will yield a PatternError
.
sourcepub fn escape(s: &str) -> String
pub fn escape(s: &str) -> String
Escape metacharacters within the given string by surrounding them in
brackets. The resulting string will, when compiled into a Pattern
,
match the input string and nothing else.
sourcepub fn matches(&self, str: &str) -> bool
pub fn matches(&self, str: &str) -> bool
Return if the given str
matches this Pattern
using the default
match options (i.e. MatchOptions::new()
).
§Examples
use glob::Pattern;
assert!(Pattern::new("c?t").unwrap().matches("cat"));
assert!(Pattern::new("k[!e]tteh").unwrap().matches("kitteh"));
assert!(Pattern::new("d*g").unwrap().matches("doog"));
sourcepub fn matches_path(&self, path: &Path) -> bool
pub fn matches_path(&self, path: &Path) -> bool
Return if the given Path
, when converted to a str
, matches this
Pattern
using the default match options (i.e. MatchOptions::new()
).
sourcepub fn matches_with(&self, str: &str, options: MatchOptions) -> bool
pub fn matches_with(&self, str: &str, options: MatchOptions) -> bool
Return if the given str
matches this Pattern
using the specified
match options.
sourcepub fn matches_path_with(&self, path: &Path, options: MatchOptions) -> bool
pub fn matches_path_with(&self, path: &Path, options: MatchOptions) -> bool
Return if the given Path
, when converted to a str
, matches this
Pattern
using the specified match options.
Trait Implementations§
source§impl FromStr for Pattern
impl FromStr for Pattern
§type Err = PatternError
type Err = PatternError
source§impl Ord for Pattern
impl Ord for Pattern
source§impl PartialEq for Pattern
impl PartialEq for Pattern
source§impl PartialOrd for Pattern
impl PartialOrd for Pattern
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moreimpl Eq for Pattern
impl StructuralPartialEq for Pattern
Auto Trait Implementations§
impl Freeze for Pattern
impl RefUnwindSafe for Pattern
impl Send for Pattern
impl Sync for Pattern
impl Unpin for Pattern
impl UnwindSafe for Pattern
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)