Ersetzen Sie bei einer gegebenen Zeichenfolge alle linken doppelten Anführungszeichen durch zwei Backticks und alle rechten doppelten Anführungszeichen durch zwei einfache Anführungszeichen.
Linke Anführungszeichen sind die Anführungszeichen, mit denen ein Anführungszeichen beginnt. Rechte Anführungszeichen sind die Anführungszeichen, mit denen ein Anführungszeichen endet. Anführungszeichen können nicht verschachtelt werden. Sie können davon ausgehen, dass die Zeichenfolge eine gerade Anzahl von Anführungszeichen enthält.
Beispiele
Eingang:
"To be or not to be," quoth the Bard, "that
is the question".
The programming contestant replied: "I must disagree.
To `C' or not to `C', that is The Question!"
Ausgabe:
``To be or not to be,'' quoth the Bard, ``that
is the question''.
The programming contestant replied: ``I must disagree.
To `C' or not to `C', that is The Question!''
Antworten:
Nicht lesbar ,
789777 Bytes-12 Bytes mit der Variablen X34 anstelle von X6.
Probieren Sie es online!
Wird in Schrift variabler Breite angezeigt, gemäß der traditionellen Hommage an den Namen der Sprache.
Ich habe Unreadable für diese Herausforderung gelernt, weil es offensichtlich das beste Werkzeug für den Job ist. Die einzigen in Unreadable zulässigen Zeichen sind
'
und"
, so sicher ist es perfekt auf eine Herausforderung geeignet , die beinhaltet Wechsel"
in''
. Ist es nichtErläuterung:
(Anrufe an X34 sind tatsächlich Anrufe an X (X5), da X5 = 34.)
quelle
Retina , 13 Bytes
Schnelles Erlernen von Retina, weil ich aus irgendeinem Grund nicht gerne mit Japt gewinne und das Gefühl habe, eine C # -Lösung würde ohnehin reguläre Ausdrücke verwenden. Ich weiß, dass es eine Retina-Antwort gibt, aber ich habe sie beim Erstellen nicht verwendet und sie (genau) auch gefunden.
Probieren Sie es online!
quelle
JavaScript (ES9), 34 Byte
Arbeiten an zitierten Blöcken:
Probieren Sie es online!
JavaScript (ES6), 38 Byte
Arbeiten Sie an jedem Anführungszeichen separat:
Probieren Sie es online!
quelle
Jelly ,
1513 BytesProbieren Sie es online!
Volles Programm.
quelle
Python 3 , 65 Bytes
Probieren Sie es online!
-8 Bytes dank Erik dem Outgolfer
quelle
s[0].replace
eine explizites[0]=='"'
Prüfung ersetzt, zusammen mit einigen anderen Modifikationen).Japt , 12 Bytes
Würden 11 sein nur für eine Begrenzung der (oder vielleicht ist es ein Bug in) Japt.
Versuch es
quelle
Q
hier nicht verwenden können : \,
.Q
anstelle von'"
TeX,
5432 BytesFür eine TeX Quotes Replacement Challenge benötigen wir natürlich auch eine TeX-Version!
...
ist die Eingabezeichenfolge, wird also nicht zur Bytezahl hinzugefügt.quelle
\def"#1"{``#1''}
? (oder\long\def
wenn Sie erwarten, dass ein Zitat eineHolzkohle , 23 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Beinhaltet 8 Bytes, um ein umständliches Eingabeformat zu vermeiden. Erläuterung:
Collect Eingangsleitungen, bis eine leere Zeile erreicht ist.
Verbinden Sie die Zeilen in Zeilenumbrüchen.
Teilen Sie die Eingabe in Anführungszeichen.
Ordnen Sie die Teile zu und verknüpfen Sie die Ergebnisse für implizite Drucke.
Lass den ersten Teil unverändert.
Stellen Sie das entsprechende Zitat doppelt voran.
quelle
R , 40 Bytes
Probieren Sie es online!
Liest die Zeichenketteneingabe und trennt sie bei jedem
"
, einen Vektor von Zeichenketten gibt. Dann werden diese Zeichenfolgen im Wechsel zwischen den doppelten Backticks und den doppelten Apostrophen als Trennzeichen eingefügt und bei Bedarf recycelt.Jemand wird wahrscheinlich eine kürzere R-Antwort auf der Grundlage eines regulären Ausdrucks posten ... Trotzdem ist diese Antwort, glaube ich, typischer für R.
Erklärung des
scan(,"",,,'"',"")
Teils:quelle
Perl 6 , 23 Bytes
Probieren Sie es online!
Verdammt, die offensichtliche Lösung ist kürzer. Ersetzt jeden zitierte Abschnitt mit einer Version mit den entsprechenden Zitaten.
Perl 6 , 24 Bytes
Probieren Sie es online!
Ersetzt jedes doppelte Anführungszeichen, zwischen den beiden Sätzen von Zeichen abwechseln.
quelle
Retina , 15 Bytes
Probieren Sie es online! Verdrängt die langweilige Retina 0.8.2 Antwort um 1 Byte. Erläuterung:
Duplizieren Sie alle Anführungszeichen.
Ersetzen Sie die Anführungszeichen zyklisch durch Backticks und einfache Anführungszeichen.
Langweilige 16-Byte- Retina 0.8.2- Antwort auf Vollständigkeit:
Probieren Sie es online!
quelle
PHP , 62 Bytes
Non-RegEx-Lösung:
Probieren Sie es online!
PHP , 48 Bytes
Port of Arnauld's RegEx Lösung :
Probieren Sie es online!
quelle
C (gcc) ,
6968 BytesProbieren Sie es online!
Ein Byte von @ceilingcat rasiert!
quelle
Labyrinth , (43?) 53 Bytes
Probieren Sie es online!
Eine Golf-Version dieses viel einfacheren 92-Byte-Programms:
Wenn wir keine Eingabe mit dem Null-Byte brauchen, dann 43 Bytes :
quelle
Python 2 , 57 Bytes
Probieren Sie es online!
Obwohl ich Jitses Antwort wirklich mag .
quelle
flags
Arguments verwenden:r'(?s)"(.*?)"'
(GNU) sed ,
38 3330 Bytes-4 durch Entfernen des
-n
Flags und implizites Drucken aufn
, -1 durch Wiederverwenden der vorherigen/expression/
, danke @Cowsquack. -3 durch implizite Verzweigung zum Ende.Probieren Sie es online! Probieren Sie es online!Probieren Sie es online!Einige ziemlich grundlegende Label Jumping.
Dies kann wahrscheinlich durch ein oder zwei Bytes golfen werden.quelle
-n
Flag ausführen, sollten Sie etwas mehr sparen. (Und natürlich gibt es die trivialesed -z
Lösung, von der ichman sed
mich ein bisschen umgesehen und bin auf 30 gekommen. Fühlen Sie sich frei, mir mitzuteilen, was ich verpasst habe. Sie haben das Golferlebnis auf dieser Sprache. (Oh,-z
ist neu für mich, aber ich stimme zu. Ich werde ohne es bleiben.)05AB1E , 15 Bytes
Probieren Sie es online!
Keine regulären Ausdrücke in 05AB1E, also haben wir uns getrennt
"
, eine Liste mit abwechselnden``
und''
verschachtelten die beiden.quelle
Haskell ,
676058 BytesProbieren Sie es online!
Die relevante Funktion ist
(#0)
.Da ich ursprünglich dachte, dass die Frage auch die Konvertierung einzelner Anführungszeichen erfordert, handelt es sich hier um eine Version, die beides behandelt:
Haskell , 125 Bytes
Probieren Sie es online!
quelle
"\""
sollte sein"''"
(zwei Apostrophe)"
in tex verwenden kannst, könntest du es hier verwenden.QuadR , 14 Bytes
Probieren Sie es online!
Einfaches Suchen / Ersetzen mit @ Adáms Wrapper für Dyalog APLs
⎕R
Eplace-Funktion von .Wie:
quelle
Rot , 79 Bytes
Probieren Sie es online!
quelle
Gelee , 13 Bytes
Ein volles Programm.
Probieren Sie es online!
Wie?
quelle
Lua , 36 Bytes
Probieren Sie es online!
Wow, nur zwei Zeichen länger als js Lösung.
quelle
Perl 5
-p0
, 19 BytesProbieren Sie es online!
quelle
Stax , 11 Bytes
Führen Sie es aus und debuggen Sie es
Verfahren:
'"'
einen Block ersetzt, der abwechselnd zwei Backticks und Foreticks ausgibt (?)quelle
Java 8, 40 Bytes
Probieren Sie es online aus.
Erläuterung:
Regex Erklärung:
quelle