I Eingabezeichenfolgen wie diese analysieren will: "this is \"test \" message \"sample\" text"
Parser für Zitiert Zeichenfolge mit Parsec
Nun, ich einen Parser zum Parsen von individuellem Text ohne Anführungszeichen geschrieben:
parseString :: Parser String
parseString = do
char '"'
x <- (many $ noneOf "\"")
char '"'
return x
parst Diese einfache Zeichenkette wie diese : "test message"
Dann schrieb ich einen Parser für Strings in Anführungszeichen:
quotedString :: Parser String
quotedString = do
initial <- string "\\\""
x <- many $ noneOf "\\\""
end <- string "\\\""
return $ initial ++ x ++ end
Dieser Parser für Strings wie diesen: \"test message\"
Gibt es eine Möglichkeit, dass ich die beiden Parser kombinieren kann, damit ich mein gewünschtes Ziel erreiche? Was genau ist der idiotische Weg, um dieses Problem anzugehen?
Warum möchten Sie die ersten und letzten Anführungszeichen entfernen, aber die escaping Backslashes intakt lassen? Ich würde denken, dass Sie die Eingabe "" \ "\" \ "c \" "entweder als" \ "ab \" c \ "" "(parsing strict für die Validierung) oder als" "ab \" c ", aber es scheint, du willst" "ab \" c ", was nicht so offensichtlich nützlich scheint. – dfeuer
@dfeuer Kein besonderer Grund, spielte nur mit Parsec herum. – Sibi