#parse-url #parser #nom

simple_url_parser

URL 的简单解析器

4 个版本

0.0.4 2023年7月24日
0.0.3 2021年8月18日
0.0.2 2021年8月18日
0.0.1 2021年8月18日

#1783解析器实现

MIT 许可协议

7KB
90

simple_url_parser

一个简单的 URL 解析器

fn main(){
    let mock_url = "https://lb:[email protected]:123/blog/01?a=1&b=2#132456";
    let url_obj = URL::parse(mock_url).unwrap();

    assert_eq!(url_obj.scheme, "https:");
    assert_eq!(url_obj.username, "lb");
    assert_eq!(url_obj.password, "123456");
    assert_eq!(url_obj.host, "www.google.com");
    assert_eq!(url_obj.port, "123");
    assert_eq!(url_obj.path, "/blog/01");
    assert_eq!(url_obj.query, "?a=1&b=2");
    assert_eq!(url_obj.hash, "#132456");

    let url_str = URL::stringify(&url_obj);
    assert_eq!(url_str, mock_url);
}

谢谢

nom


lib.rs:

simple_url_parser

一个简单的 URL 解析器

fn main(){
    let mock_url = "https://lb:[email protected]:123/blog/01?a=1&b=2#132456";
    let url_obj = URL::parse(mock_url).unwrap();

   assert_eq!(url_obj.scheme, "https:");
    assert_eq!(url_obj.username, "lb");
    assert_eq!(url_obj.password, "123456");
    assert_eq!(url_obj.host, "www.google.com");
    assert_eq!(url_obj.port, "123");
    assert_eq!(url_obj.path, "/blog/01");
    assert_eq!(url_obj.query, "?a=1&b=2");
    assert_eq!(url_obj.hash, "#132456");

    let url_str = URL::stringify(&url_obj);
    assert_eq!(url_str, mock_url);
}

谢谢

nom

依赖

~1MB
~20K SLoC