我想用 nom 来解析这两个:
[
a,
b,
c
]
Run Code Online (Sandbox Code Playgroud)
[
a,
b,
c,
]
Run Code Online (Sandbox Code Playgroud)
目前我有这段代码可以解析第一个,但不能解析第二个(第一个函数是 nom 文档中的一个配方,它只解析空格):
[
a,
b,
c
]
Run Code Online (Sandbox Code Playgroud)
我是 nom 的新手,对当前的代码没有任何忠诚,所以很好地告诉我我做错了......
谢谢!
这是一个(可能有多种解决方案)。
只需terminated与以下一起使用opt:
pub fn parse_list(input: &str) -> IResult<&str, Vec<&str>> {
delimited(
ws(tag("[")),
terminated(
separated_list0(
ws(tag(",")),
take_while1(|x| char::is_alphabetic(x) || x == '_'),
),
opt(ws(tag(","))),
),
ws(tag("]")),
)(input)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1444 次 |
| 最近记录: |