#regex #path #string #regular #expression #turn #user-name

path_to_regexp

Turn a path string such as /user/:name into a regular expression

3 releases

0.1.2 Jun 3, 2019
0.1.1 Apr 6, 2019
0.1.0 Mar 24, 2019

#56 in #turn

MIT license

12KB
264 lines

path_to_regexp

Turn a path string such as /user/:name into a regular expression

Usage example

extern crate path_to_regexp;

use path_to_regexp::*;

fn main() {
    let scheme: &str = "/route/:foo/:bar/:id";
    let uri: &str = "/route/john/doe/7";
    
    let containers = parse(scheme, Options::default());
    let regexp = to_regexp(containers.as_ref(), Options::default());
    let matches = match_str(uri, regexp, containers.to_vec());

    println!("matches {:#?}", matches);

    /* OUTPUT:
    *    matches [
    *        Match {
    *            name: "foo",
    *            value: "john"
    *        },
    *        Match {
    *            name: "bar",
    *            value: "doe"
    *        },
    *        Match {
    *            name: "id",
    *            value: "7"
    *        }
    *    ]
    */
}

Credit

This package is heavily inspired by its JavaScript path-to-regexp.

Dependencies

~5–13MB
~147K SLoC