我用的是名。我想解析一个被括号包围的字符串,并允许在字符串中添加额外的嵌套括号。
所以(a + b)
会解析为a + b
,并且((a + b))
会解析为(a + b)
这适用于第一种情况,但不适用于嵌套情况:
pub fn parse_expr(input: &str) -> IResult<&str, &str> {
// TODO: this will fail with nested parentheses, but `rest` doesn't seem to
// be working.
delimited(tag("("), take_until(")"), tag(")"))(input)
}
我尝试使用rest
,但这不尊重 final )
:
pub fn parse_expr(input: &str) -> IResult<&str, &str> {
delimited(tag("("), rest, tag(")"))(input)
}
谢谢!