Une citation est "la répétition d'une expression comme faisant partie d'une autre". En anglais américain, une citation est entourée de guillemets doubles ("), comme dans la phrase précédente. Cependant, cette règle diffère lorsqu'une citation apparaît à l'intérieur d'une autre citation. Dans ce cas, la citation intérieure est entourée de guillemets simples (').
Défi
Étant donné une chaîne en entrée, affichez une version quotable de cette chaîne en échangeant des guillemets doubles et simples qui sont utilisés pour les guillemets internes.
Il n'y a qu'un seul hic, cependant - tous les guillemets simples ne sont pas utilisés pour la citation! Pour ce défi, le guillemet simple est utilisé pour les devis si et seulement si:
- La marque est précédée d'un caractère non alphanumérique, ou
- La marque est suivie d'un caractère non alphanumérique qui n'est pas un espace
Les notes utilisées pour les devis sont garanties d'être équilibrées; c'est-à-dire que vous n'avez pas besoin de gérer une entrée non valide. En outre, les guillemets doubles ne seront utilisés que dans les situations où des guillemets simples peuvent être utilisés pour représenter les guillemets.
Cas de test
A man, a plan, a canal, Panama.
"A man, a plan, a canal, Panama."
Socrates once said, "An unexamined life is not worth living."
"Socrates once said, 'An unexamined life is not worth living.'"
@musicman523 said, "Socrates once said, 'An unexamined life is not worth living.'"
"@musicman523 said, 'Socrates once said, "An unexamined life is not worth living."'"
"Nested 'quotes "can 'cause "recursion," if,' it," runs,' deep!"
"'Nested "quotes 'can "cause 'recursion,' if," it,' runs," deep!'"
"Contractions' behaviors can't be easy to account for," he warned.
"'Contractions' behaviors can't be easy to account for,' he warned."
@carusocomputing said, "Nested, 'quotes, it's unfortunate', to be sure."
"@carusocomputing said, 'Nested, "quotes, it's unfortunate", to be sure.'"
Notation
C'est le code-golf , donc la réponse la plus courte dans chaque langue gagne!
la source
... if' it" runs' deep"
a des guillemets simples qui ne sont pas précédés d'un caractère non alphanumérique, ni suivis de "caractère non alphanumérique qui n'est pas un espace", et pourtant ils sont transformés!"Nested, 'quotes, it's unfortunate', to be sure."
- Je pense que vous avez besoin d'un cas emboîté avec des contractions.Réponses:
Ruby ,
64666564 + 1 =65676665 octets+1 octet pour le
-n
drapeau.Essayez-le en ligne!
la source
Rétine ,
3427 octets-7 octets grâce à @Leo
Essayez-le en ligne!
la source
@carusocomputing said, "Nested, 'quotes, it's unfortunate', to be sure."
comme entrée, le guillemet simple suivantunfortunate
n'est pas changé en guillemet double, mais devrait l'être. Si cela vous aide à déboguer, cela fonctionne lorsque la virgule précède le devis. (Je ne connais pas Retina donc je ne peux pas vraiment aider davantage.)JavaScript (ES6), 90 octets
Suppose que la chaîne ne contient pas
#
.Afficher l'extrait de code
la source