2016-08-11 1 views
0

Ich kann die Ressourcen dafür nicht finden. Ich möchte doppelten Anführungszeichen mit Perl entkommen und ich bin neu in dieser Sprache.Escaping doppelte Angebote beheben

Hier ist, was ich habe:

$comment =~ s/\"/\\\"/g; 

Es scheint nicht zu funktionieren. Was ist eine richtige Lösung?

+1

'perl -e‚$ comment = "a \" b "sagen $ comment; $ comment = ~ s /"/\\ "/ g, sagen $ Kommentar '' zeigt, dass dein Code seine Arbeit macht, also ist das Problem vermutlich woanders .. Bitte zeige uns deinen gesamten Code, damit wir helfen können. – Dada

+0

Aus Neugier, warum versuchst du, den Zitaten zu entkommen? – ThisSuitIsBlackNot

+0

@ThisSuitIsBlackNot weil einige von die Daten haben doppelte Anführungszeichen und es verursacht ein Problem mit unserem xml – slicks1

Antwort

0

Eine Möglichkeit, Dinge einzufügen, die Flucht müßte, ohne zu zählen, Schrägstriche

$comment =~ s/"/q(\")/eg; 

Mit /e Modifikator dem Ersatzteil als Code ausgewertet wird und das als Ersatz verwendet Ergebnis. Sehen Sie es in perlop und, sagen wir, this post. Hier wird dies verwendet, um eine literale Zeichenfolge durch q() zu erzwingen.

Beachten Sie, dass in diesem einfachen Fall s/"/\"/ funktioniert. Es ist wahrscheinlich mehr passiert in Ihrem Code, oder Ihre Zitate kommen bereits in diesem Fall extra entkommen \ beeinflussen, was Sie später sehen.

0

Keine Zählung erforderlich:

$comment =~ s.(?=").\\.g; 
Verwandte Themen