9个不稳定版本 (3个重大变更)
0.4.4 | 2019年10月7日 |
---|---|
0.4.3 | 2019年10月7日 |
0.4.2 | 2019年8月26日 |
0.4.1 | 2019年7月30日 |
0.1.0 | 2019年3月16日 |
#2604 在 解析器实现
166 每月下载量
21KB
399 行
反向查找URL
此crate提供了一种解析器,用于在字符串中按反向顺序搜索URL。
所有功能都由Parser
结构处理,它接受chars
作为输入。
示例
可以将文本以反向顺序输入解析器
use rfind_url::{Parser, ParserState};
let mut parser = Parser::new();
for c in "There_is_no_URL_here".chars().rev() {
assert_eq!(parser.advance(c), ParserState::MaybeUrl);
}
解析器在将URL的最后一个字符推入时立即返回URL的长度。否则,它将返回None
use rfind_url::{Parser, ParserState};
let mut parser = Parser::new();
// Parser guarantees there's currently no active URL
assert_eq!(parser.advance(' '), ParserState::NoUrl);
// URLs are only returned once they are complete
for c in "ttps://example.org".chars().rev() {
assert_eq!(parser.advance(c), ParserState::MaybeUrl);
}
// Parser has detected a URL spanning the last 19 characters
assert_eq!(parser.advance('h'), ParserState::Url(19));