Diberikan string, ganti semua tanda kutip kiri-ganda menjadi dua tanda kutip dan semua tanda kutip kanan-ganda menjadi dua tanda kutip tunggal.
Kutipan Kiri berarti kutipan yang memulai penawaran. Kutipan Benar berarti kutipan yang mengakhiri penawaran. Kutipan tidak dapat disarangkan. Anda dapat berasumsi bahwa ada sejumlah tanda kutip ganda dalam string.
Contohnya
Memasukkan:
"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!"
Keluaran:
``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!''
Jawaban:
Tidak dapat dibaca ,
789777 byte-12 byte dengan menggunakan variabel X34 daripada X6.
Cobalah online!
Ditampilkan dalam font lebar variabel, per upeti tradisional untuk nama bahasa.
Saya belajar Tidak terbaca untuk tantangan ini, karena itu jelas alat terbaik untuk pekerjaan itu. Satu-satunya karakter yang diizinkan dalam Unreadable adalah
'
dan"
, jadi pasti sangat cocok untuk tantangan yang melibatkan perubahan"
menjadi''
. Bukan?Penjelasan:
(Panggilan ke X34 sebenarnya adalah panggilan ke X (X5), karena X5 = 34.)
sumber
Retina , 13 byte
Mempelajari Retina dengan cepat karena karena alasan tertentu saya tidak suka Japt menang dan merasa seperti solusi C # tetap menggunakan ekspresi reguler. Saya tahu ada jawaban Retina, tetapi saya belum menggunakannya saat membuat ini, dan saya menemukannya (tepatnya) juga.
Cobalah online!
sumber
JavaScript (ES9), 34 byte
Bekerja pada blok yang dikutip:
Cobalah online!
JavaScript (ES6), 38 byte
Bekerja pada setiap penawaran ganda secara terpisah:
Cobalah online!
sumber
Jelly ,
1513 byteCobalah online!
Program lengkap.
sumber
Python 3 , 65 byte
Cobalah online!
-8 byte terima kasih kepada Erik the Outgolfer
sumber
s[0].replace
dengan pemeriksaan eksplisits[0]=='"'
, bersama dengan beberapa modifikasi lainnya).Japt , 12 byte
Akan menjadi 11 hanya untuk batasan (atau mungkin itu bug di) Japt.
Cobalah
sumber
Q
sini: \,
juga.Q
di tempat'"
TeX,
5432 byteUntuk tantangan penggantian kutipan TeX kami juga memerlukan versi TeX tentunya!
...
adalah string input, sehingga tidak menambah jumlah byte.sumber
\def"#1"{``#1''}
? (atau\long\def
jika Anda mengharapkan penawaran melewati batas paragraf)Arang , 23 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Termasuk 8 byte untuk menghindari format input yang rumit. Penjelasan:
Kumpulkan jalur input sampai garis kosong tercapai.
Bergabunglah dengan garis pada karakter baris baru.
Pisahkan input pada tanda kutip.
Petakan setiap bagian dan gabungkan hasilnya untuk cetakan implisit.
Biarkan bagian pertama tidak berubah.
Awali kutipan yang sesuai, dua kali lipat.
sumber
R , 40 byte
Cobalah online!
Membaca input string, memisahkan pada masing-masing
"
, memberikan vektor string. Kemudian tempelkan string itu, bergantian antara backtick ganda dan apostrof ganda sebagai pemisah, daur ulang sesuai kebutuhan.Seseorang mungkin akan memposting jawaban R pendek berdasarkan pada regex ... Namun, jawaban ini lebih khas dari R, saya pikir.
Penjelasan
scan(,"",,,'"',"")
bagian:sumber
Perl 6 , 23 byte
Cobalah online!
Sial, solusi yang jelas lebih pendek. Ganti setiap bagian yang dikutip dengan versi dengan kutipan yang sesuai.
Perl 6 , 24 byte
Cobalah online!
Mengganti setiap kutipan ganda, bergantian di antara dua set karakter.
sumber
Retina , 15 byte
Cobalah online! Menggeser keluar membosankan Retina 0.8.2 jawaban oleh 1 byte. Penjelasan:
Gandakan semua kutipan.
Ganti kutipan secara berulang dengan pasangan backtick dan single.
Membosankan 16-byte Retina 0.8.2 jawaban untuk kelengkapan:
Cobalah online!
sumber
PHP , 62 byte
Solusi Non-RegEx:
Cobalah online!
PHP , 48 byte
Solusi Port of Arnauld's RegEx :
Cobalah online!
sumber
C (gcc) ,
6968 byteCobalah online!
Satu byte dicukur oleh @ceilingcat!
sumber
Labyrinth , (43?) 53 byte
Cobalah online!
Versi golf dari program 92 byte yang lebih sederhana ini:
Jika kita tidak perlu menangani input yang berisi byte nol maka 43 byte :
sumber
Python 2 , 57 byte
Cobalah online!
Meski aku sangat suka jawaban Jitse .
sumber
flags
argumen:r'(?s)"(.*?)"'
(GNU) sed ,
38 3330 byte-4 dengan menghapus
-n
bendera dan secara implisit mencetakn
, -1 dengan menggunakan kembali sebelumnya/expression/
, terima kasih @Cowsquack. -3 dengan menggunakan branch-to-end implisit.Cobalah online! Cobalah online!Cobalah online!Beberapa label melompat cukup mendasar.
Ini mungkin bisa golf dengan satu atau dua byte.sumber
-n
tanda harus menyimpan lebih banyak. (Dan tentu saja adased -z
solusi sepele yang saya anggap sengaja Anda hindari)man sed
dan mendapat 30. Jangan ragu untuk memberi tahu saya apa pun yang saya lewatkan, Anda punya pengalaman golf di sini. (Oh,-z
baru bagi saya, tapi saya setuju. Saya akan tetap tanpanya.)05AB1E , 15 byte
Cobalah online!
Tidak ada regex di 05AB1E, jadi kami membagi
"
, membuat daftar bolak-balik``
dan''
, kemudian interleave keduanya.sumber
Haskell ,
676058 byteCobalah online!
Fungsi yang relevan adalah
(#0)
.Karena saya awalnya berpikir pertanyaan itu juga mengharuskan kami untuk mengkonversi tanda kutip tunggal di sini adalah versi yang menangani keduanya:
Haskell , 125 byte
Cobalah online!
sumber
"\""
seharusnya"''"
(dua tanda kutip)"
tex Anda dapat menggunakannya di sini.QuadR , 14 byte
Cobalah online!
Temukan / ganti sederhana menggunakan @ Adám's wrapper untuk Dyalog APL
⎕R
.Bagaimana:
sumber
Merah , 79 byte
Cobalah online!
sumber
Jelly , 13 byte
Program lengkap.
Cobalah online!
Bagaimana?
sumber
Lua , 36 byte
Cobalah online!
Wow, hanya dua karakter lebih panjang dari solusi js.
sumber
Perl 5
-p0
, 19 byteCobalah online!
sumber
Stax , 11 byte
Jalankan dan debug itu
Prosedur:
'"'
dengan blok yang menghasilkan keluaran bolak-balik dari pasangan backticks dan foreticks (?)sumber
Java 8, 40 byte
Cobalah online.
Penjelasan:
Penjelasan regex:
sumber