3

使用 nom 很容易解析一个字符串,直到找到一个字符。如何使用 nom 吞噬字符串直到分隔符或结尾?处理这个。

如何对字符串(多个字符)而不是单个分隔符执行相同操作?

例如,要解析abchello,我想解析所有内容,直到hello找到为止。

4

1 回答 1

0

此代码返回正确的结果。

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);
}

文档在这里

cargo run
-> Ok(("hello", "abc"))
于 2021-12-22T23:16:25.970 回答