Я хочу использовать fastparse для преобразования следующей строки \"Escaped quote\"\"\"
в Escaped quote\"
. У меня есть следующий код, который почти работает.
def escapedQuote[_: P]: P[Unit] = P("\"")
def unquotedColumn[_: P] = P(escapedQuote ~ ((!escapedQuote ~ AnyChar.!) | escapedQuote ~ escapedQuote.!).rep ~ escapedQuote ~ End)
val result = parse(input, unquotedColumn(_))
Я получаю результат ArrayBuffer(E, s, c, a, p, e, d, , q, u, o, t, e, ")
, который очень близок к тому, что я хочу, однако я хочу получить результат в строке.
Однако, когда я пытаюсь сделать следующее (добавляя.! После повторения),
def unquotedColumn[_: P] = P(escapedQuote ~ ((!escapedQuote ~ AnyChar.!) | escapedQuote ~ escapedQuote.!).rep.! ~ escapedQuote ~ End)
я получаю результат Escaped quote\"\"
. Появилась дополнительная экранированная цитата.
Я хочу использовать мой unquotedColumn
в других парсерах.
Есть идеи, как исправить мой код?