[][src]Enum fancy_regex_fork_pb::Regex

pub enum Regex {
    Wrap {
        inner: Regex,
        inner1: Option<Box<Regex>>,
        original: String,
    },
    Impl {
        prog: Prog,
        n_groups: usize,
        original: String,
    },
}

Variants

Wrap

Fields of Wrap

inner: Regexinner1: Option<Box<Regex>>original: String
Impl

Fields of Impl

prog: Progn_groups: usizeoriginal: String

Methods

impl Regex[src]

pub fn new(re: &str) -> Result<Regex>[src]

pub fn as_str(&self) -> &str[src]

Returns the original string of this regex.

pub fn is_match(&self, text: &str) -> Result<bool>[src]

Check if the regex matches the input text.

Example

Test if some text contains the same word twice:


let re = Regex::new(r"(\w+) \1").unwrap();
assert!(re.is_match("mirror mirror on the wall").unwrap());

pub fn find<'t>(&self, text: &'t str) -> Result<Option<Match<'t>>>[src]

Find the first match in the input text.

If you have capturing groups in your regex that you want to extract, use the [captures()] method.

Example

Find a word that is followed by an exclamation point:


let re = Regex::new(r"\w+(?=!)").unwrap();
assert_eq!(re.find("so fancy!").unwrap().unwrap().as_str(), "fancy");

pub fn captures<'t>(&self, text: &'t str) -> Result<Option<Captures<'t>>>[src]

Returns the capture groups for the first match in text.

If no match is found, then Ok(None) is returned.

Examples

Finding matches and capturing parts of the match:


let re = Regex::new(r"(\d{4})-(\d{2})-(\d{2})").unwrap();
let text = "The date was 2018-04-07";
let captures = re.captures(text).unwrap().unwrap();

assert_eq!(captures.get(1).unwrap().as_str(), "2018");
assert_eq!(captures.get(2).unwrap().as_str(), "04");
assert_eq!(captures.get(3).unwrap().as_str(), "07");
assert_eq!(captures.get(0).unwrap().as_str(), "2018-04-07");

pub fn captures_from_pos<'t>(
    &self,
    text: &'t str,
    pos: usize
) -> Result<Option<Captures<'t>>>
[src]

Returns the capture groups for the first match in text, starting from the specified byte position pos.

Examples

Finding captures starting at a position:

let re = Regex::new(r"(?m:^)(\d+)").unwrap();
let text = "1 test 123\n2 foo";
let captures = re.captures_from_pos(text, 7).unwrap().unwrap();

let group = captures.get(1).unwrap();
assert_eq!(group.as_str(), "2");
assert_eq!(group.start(), 11);
assert_eq!(group.end(), 12);

Note that in some cases this is not the same as using the captures methods and passing a slice of the string, see the capture that we get when we do this:

let re = Regex::new(r"(?m:^)(\d+)").unwrap();
let text = "1 test 123\n2 foo";
let captures = re.captures(&text[7..]).unwrap().unwrap();
assert_eq!(captures.get(1).unwrap().as_str(), "123");

This matched the number "123" because it's at the beginning of the text of the string slice.

pub fn debug_print(&self)[src]

Trait Implementations

impl Debug for Regex[src]

fn fmt(&self, f: &mut Formatter) -> Result[src]

Shows the original regular expression.

Auto Trait Implementations

impl Sync for Regex

impl Send for Regex

impl Unpin for Regex

impl !RefUnwindSafe for Regex

impl UnwindSafe for Regex

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]