我想编写一个 nom 解析器组合器,它需要尽可能多的字节,包括标签序列。我尝试使用take_until_and_consume!
,但我发现生成的解析器组合器丢弃了标记序列:
#[macro_use]
extern crate nom;
named!(up_to_and_including_backslash, take_until_and_consume!("\\"));
fn main() {
let res = up_to_and_including_backslash(b" \\");
println!("{:?}", res);
}
结果是:
Done([], [32, 32, 32, 32])
我想要的是将标签序列(在本例中为反斜杠字符)包含在结果中:
Done([], [32, 32, 32, 32, 92])
我怎样才能做到这一点?