Scala 使用解析器组合符提取嵌套表达式

Scala 使用解析器组合符提取嵌套表达式,scala,parsing,parser-combinators,Scala,Parsing,Parser Combinators,我需要编写一个解析器,可以提取两个括号之间的所有文本: parser("left-text ( text-to-extract ) right-text") = "text-to-extract" 要提取的文本可以包含括号,而左文本和右文本都不能包含括号 我使用的是Scala解析器组合器,我希望解决方案适合它。 你能帮我吗?如果左边的文本是{,右边的文本是},那么你的解析器应该如下所示 def parser: Parser[String] = "{" ~> "

我需要编写一个解析器,可以提取两个括号之间的所有文本:

parser("left-text ( text-to-extract ) right-text") = "text-to-extract"
要提取的
文本可以包含括号,而
左文本和
右文本都不能包含括号

我使用的是Scala解析器组合器,我希望解决方案适合它。
你能帮我吗?

如果左边的文本是
{
,右边的文本是
}
,那么你的解析器应该如下所示

def parser: Parser[String] = "{" ~> "[^}]".r <~ "}"

def parser:parser[String]=“{”~>“[^}]”。r
到目前为止,您编写了什么代码?您真的只需要中间文本(即,您将丢弃左右文本),还是只想将字符串拆分为这三部分?