Dada una cadena, reemplace todas las comillas dobles a la izquierda en dos comillas invertidas y todas las comillas dobles a la derecha en dos comillas simples.
Left-quotes significa las citas que comienzan una cita. Right-quotes significa las citas que finalizan una cita. Las citas no se pueden anidar. Puede suponer que hay un número par de comillas dobles en la cadena.
Ejemplos
Entrada:
"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!"
Salida:
``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!''
Respuestas:
Ilegible ,
789777 bytes-12 bytes utilizando la variable X34 en lugar de X6.
Pruébalo en línea!
Se muestra en letra de ancho variable, según el tributo tradicional al nombre del idioma.
Aprendí Ilegible para este desafío, porque obviamente es la mejor herramienta para el trabajo. Los únicos personajes permitidos en Unreadable son
'
y"
, por lo tanto, seguramente se adapta perfectamente a un desafío que implica cambiar"
a''
. ¿No es así?Explicación:
(Las llamadas a X34 son en realidad llamadas a X (X5), ya que X5 = 34.)
fuente
Retina , 13 bytes
Aprendí Retina rápidamente porque, por alguna razón, no me gusta que Japt gane y siento que una solución C # usaría expresiones regulares de todos modos. Sé que hay una respuesta de Retina, pero no la he usado al crearla, y la encontré (exactamente) de todos modos.
Pruébalo en línea!
fuente
JavaScript (ES9), 34 bytes
Trabajando en bloques citados:
Pruébalo en línea!
JavaScript (ES6), 38 bytes
Trabajando en cada comilla doble por separado:
Pruébalo en línea!
fuente
Jalea ,
1513 bytesPruébalo en línea!
Programa completo
fuente
Python 3 , 65 bytes
Pruébalo en línea!
-8 bytes gracias a Erik the Outgolfer
fuente
s[0].replace
con unas[0]=='"'
verificación explícita , junto con algunas otras modificaciones).Japt , 12 bytes
Sería 11 solo por una limitación de (o tal vez es un error en) Japt.
Intentalo
fuente
Q
aquí: \,
también.Q
en lugar de'"
TeX,
5432 bytesPara un desafío de reemplazo de cotizaciones de TeX, ¡también necesitamos una versión de TeX, por supuesto!
...
es la cadena de entrada, por lo que no se agrega al recuento de bytes.fuente
\def"#1"{``#1''}
? (o\long\def
si espera que una cita cruce el límite de un párrafo)Carbón , 23 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Incluye 8 bytes para evitar un formato de entrada engorroso. Explicación:
Recoja las líneas de entrada hasta llegar a una línea vacía.
Une las líneas en los personajes de nueva línea.
Dividir la entrada entre comillas.
Asigne sobre cada parte y concatene los resultados para la impresión implícita.
Deje la primera parte sin cambios.
Prefije la cita apropiada, doblada.
fuente
R , 40 bytes
Pruébalo en línea!
Lee la entrada de cadena, separándose en cada
"
, dando un vector de cadenas. Luego pega esas cuerdas, alternando entre los dobles backticks y los dobles apóstrofes como separadores, reciclándolos según sea necesario.Alguien probablemente publicará una respuesta R más corta basada en una expresión regular ... Sin embargo, esta respuesta es más típica de R, creo.
Explicación de la
scan(,"",,,'"',"")
parte:fuente
Perl 6 , 23 bytes
Pruébalo en línea!
Maldición, la solución obvia es más corta. Reemplaza cada porción citada con una versión con las citas apropiadas.
Perl 6 , 24 bytes
Pruébalo en línea!
Reemplaza cada comilla doble, alternando entre los dos conjuntos de caracteres.
fuente
Retina , 15 bytes
Pruébalo en línea! Bordea la aburrida Retina 0.8.2 respuesta por 1 byte. Explicación:
Duplicar todas las citas.
Sustituya cíclicamente las comillas por pares de backticks y comillas simples.
Aburrida respuesta de Retina 0.8.2 0.8.2 para completar:
Pruébalo en línea!
fuente
PHP , 62 bytes
Solución no RegEx:
Pruébalo en línea!
PHP , 48 bytes
Solución RegEx del puerto de Arnauld :
Pruébalo en línea!
fuente
C (gcc) ,
6968 bytesPruébalo en línea!
¡Un byte recortado por @ceilingcat!
fuente
Laberinto , (43?) 53 bytes
Pruébalo en línea!
Una versión de golf de este, mucho más simple, programa de 92 bytes:
Si no necesitamos manejar la entrada que contiene el byte cero, entonces 43 bytes :
fuente
Python 2 , 57 bytes
Pruébalo en línea!
Aunque realmente me gusta la respuesta de Jitse .
fuente
flags
argumento:r'(?s)"(.*?)"'
(GNU) sed ,
38 3330 bytes-4 eliminando la
-n
bandera e imprimiendo implícitamente enn
, -1 reutilizando anterior/expression/
, gracias @Cowsquack. -3 mediante el uso implícito de rama a extremo.Pruébalo en línea! Pruébalo en línea!Pruébalo en línea!Un salto de etiqueta bastante básico.
Esto probablemente se puede jugar por un byte o dos.fuente
-n
bandera debería ahorrar un poco más. (Y, por supuesto, existe lased -z
solución trivial que supongo que has evitado intencionalmente)man sed
buscar un poco y llegué a 30. Siéntete libre de hacerme saber todo lo que me perdí, tienes la experiencia de golf en este idioma. (Oh,-z
es nuevo para mí, pero estoy de acuerdo. Me quedaré sin él.)05AB1E , 15 bytes
Pruébalo en línea!
No hay expresiones regulares en 05AB1E, así que nos separamos
"
, hacemos una lista de alternancia``
y''
luego intercalamos las dos.fuente
Haskell ,
676058 bytesPruébalo en línea!
La función relevante es
(#0)
.Como originalmente pensé que la pregunta también requería que convirtiéramos comillas simples, aquí hay una versión que maneja ambos:
Haskell , 125 bytes
Pruébalo en línea!
fuente
"\""
debería ser"''"
(dos apóstrofes)"
en tex, puedes usarlo aquí.QuadR , 14 bytes
Pruébalo en línea!
Búsqueda / reemplazo simple usando el contenedor de @ Adám para Dyalog APL's
⎕R
función eplace de .Cómo:
fuente
Rojo , 79 bytes
Pruébalo en línea!
fuente
Jalea , 13 bytes
Un programa completo
Pruébalo en línea!
¿Cómo?
fuente
Lua , 36 bytes
Pruébalo en línea!
Wow, solo dos caracteres más que la solución js.
fuente
Perl 5
-p0
, 19 bytesPruébalo en línea!
fuente
Stax , 11 bytes
Ejecutar y depurarlo
Procedimiento:
'"'
con un bloque que produce salidas alternas de pares de backticks y foreticks (?)fuente
Java 8, 40 bytes
Pruébalo en línea.
Explicación:
Explicación de expresiones regulares:
fuente