使用 nom 解析字符串直到找到字符很容易。如何使用 nom 吞噬字符串直到分隔符或结尾?处理这个问题。
如何使用字符串(多个字符)而不是单个分隔符执行相同的操作?
例如,为了解析abchello,我想解析所有内容,直到hello找到为止。
oka*_*56k -1
这段代码返回正确的结果。
use nom::{IResult, bytes::complete::is_not};
fn parser(s: &str) -> IResult<&str, &str> {
is_not("hello")(s)
}
fn main() {
let result = parser("abchello");
println!("{:?}", result);
}
Run Code Online (Sandbox Code Playgroud)
文档在这里。
cargo run
-> Ok(("hello", "abc"))
Run Code Online (Sandbox Code Playgroud)