Получив строку, замените все левые двойные кавычки на две обратные кавычки и все правые двойные кавычки на две одинарные кавычки.
Кавычки слева означают кавычки, с которых начинается кавычка. Правые кавычки означают кавычки, которые заканчивают цитату. Цитаты не могут быть вложенными. Вы можете предположить, что в строке есть четное число двойных кавычек.
Примеры
Входные данные:
"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!"
Выход:
``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!''
Ответы:
Не читается ,
789777 байт-12 байт, используя переменную X34, а не X6.
Попробуйте онлайн!
Отображается шрифтом переменной ширины в соответствии с традиционной данью имени языка.
Я научился нечитаемому для этой задачи, потому что это, очевидно, лучший инструмент для работы. В Unreadable допускаются только символы,
'
и"
, безусловно, они идеально подходят для вызова, который включает"
в себя изменение''
. Не так ли?Объяснение:
(Звонки в X34 на самом деле являются звонками в X (X5), поскольку X5 = 34.)
источник
Сетчатка , 13 байт
Быстрое изучение Retina, потому что по какой-то причине я не люблю побеждать Джапта и чувствую, что решение C # все равно будет использовать регулярные выражения. Я знаю, что есть ответ Retina, но я не использовал его при создании, и я все равно нашел его (точно).
Попробуйте онлайн!
источник
JavaScript (ES9), 34 байта
Работаем над указанными блоками:
Попробуйте онлайн!
JavaScript (ES6), 38 байт
Работаем над каждой двойной кавычкой отдельно:
Попробуйте онлайн!
источник
Желе ,
1513 байтПопробуйте онлайн!
Полная программа.
источник
Python 3 , 65 байт
Попробуйте онлайн!
-8 байтов благодаря Эрику Аутгольферу
источник
s[0].replace
ее явнойs[0]=='"'
проверкой вместе с некоторыми другими модификациями).Japt , 12 байт
Было бы 11 только для ограничения (или, возможно, это ошибка в) Japt.
Попытайся
источник
Q
,
тоже.Q
вместо'"
TeX,
5432 байтаДля задачи замены котировок TeX нам также нужна версия TeX!
...
является входной строкой, поэтому она не добавляет к количеству байтов.источник
\def"#1"{``#1''}
? (или\long\def
если вы ожидаете, что цитата пересекает границу абзаца)Древесный уголь , 23 байта
Попробуйте онлайн! Ссылка на подробную версию кода. Включает 8 байтов, чтобы избежать громоздкого формата ввода. Объяснение:
Соберите входные строки, пока не будет достигнута пустая строка.
Присоединяйтесь к строкам на символах новой строки.
Разделить ввод на кавычки.
Нанесите на карту каждую часть и объедините результаты для неявной печати.
Оставьте первую часть без изменений.
Префикс соответствующей цитаты, удвоенный.
источник
R , 40 байт
Попробуйте онлайн!
Читает строку ввода, отделяя в каждом
"
, давая вектор строк. Затем вставьте эти строки, чередуя двойные обратные метки и двойные апострофы в качестве разделителей, перерабатывая их по мере необходимости.Кто-то, вероятно, опубликует более короткий R-ответ, основанный на регулярном выражении ... Тем не менее, этот ответ более типичен для R, я думаю.
Объяснение
scan(,"",,,'"',"")
части:источник
Perl 6 , 23 байта
Попробуйте онлайн!
Черт, очевидное решение короче. Заменяет каждую цитируемую часть версией с соответствующими цитатами.
Perl 6 , 24 байта
Попробуйте онлайн!
Заменяет каждую двойную кавычку, чередуя два набора символов.
источник
Сетчатка , 15 байт
Попробуйте онлайн! Вычеркивает скучный ответ Retina 0.8.2 на 1 байт. Объяснение:
Дублируйте все цитаты.
Циклически заменяйте кавычки парами обратных галочек и одинарных кавычек.
Скучная 16-байтовая Retina 0.8.2 отвечает за полноту:
Попробуйте онлайн!
источник
PHP , 62 байта
Решение не-RegEx:
Попробуйте онлайн!
PHP , 48 байт
Решение RegEx порта Арнаулда :
Попробуйте онлайн!
источник
C (gcc) ,
6968 байтПопробуйте онлайн!
@Ceilingcat сбрил один байт!
источник
Лабиринт , (43?) 53 байта
Попробуйте онлайн!
Гольф-версия этой, гораздо более простой, 92-байтовой программы:
Если нам не нужно обрабатывать ввод, содержащий нулевой байт, то 43 байта :
источник
Python 2 , 57 байт
Попробуйте онлайн!
Хотя мне очень нравится ответ Джитсе .
источник
flags
аргумента:r'(?s)"(.*?)"'
(GNU) sed ,
38 3330 байт-4 , убрав
-n
флаг и неявно печатаяn
, -1 путем повторного использования предыдущего/expression/
, спасибо @Cowsquack. -3 с помощью неявного перехода к концу.Попробуйте онлайн! Попробуйте онлайн!Попробуйте онлайн!Некоторые довольно простые метки прыжков.
Это, вероятно, можно сыграть в байт или два.источник
-n
флага должно сэкономить немного больше. (И, конечно, есть тривиальноеsed -z
решение, которое, я полагаю, вы намеренно избежали)man sed
немного покопался и добрался до 30. Не стесняйтесь, дайте мне знать, что я пропустил, у вас есть опыт игры в гольф на этом языке. (О,-z
это ново для меня, но я согласен. Я останусь без него.)05AB1E , 15 байтов
Попробуйте онлайн!
В 05AB1E нет регулярных выражений, поэтому мы разделимся, составим
"
список чередующихся``
и''
затем чередуем их .источник
Haskell ,
676058 байтПопробуйте онлайн!
Соответствующая функция есть
(#0)
.Поскольку я изначально думал, что вопрос также требует от нас преобразования одинарных кавычек, здесь есть версия, которая обрабатывает оба:
Haskell , 125 байт
Попробуйте онлайн!
источник
"\""
должно быть"''"
(два апострофа)"
текст, вы можете использовать его здесь.QuadR , 14 байт
Попробуйте онлайн!
Простой поиск / замена с помощью оболочки @ Adám для Dyalog APL
⎕R
функции eplace Dyalog .Как:
источник
Красный , 79 байт
Попробуйте онлайн!
источник
Желе , 13 байт
Полная программа.
Попробуйте онлайн!
Как?
источник
Луа , 36 байт
Попробуйте онлайн!
Ничего себе, только два символа дольше, чем решение JS.
источник
Perl 5
-p0
, 19 байтПопробуйте онлайн!
источник
Stax , 11 байт
Запустите и отладьте его
Процедура:
'"'
блоком, который производит чередующиеся выходы пар обратных и обратных строк (?)источник
Java 8, 40 байт
Попробуйте онлайн.
Объяснение:
Regex объяснение:
источник