Alıntımı alıntıla!


13

Bir tırnak "bir ifadenin diğerinin bir parçası olarak tekrarlanması" dır. Amerikan İngilizcesinde, tırnak bir önceki cümlede olduğu gibi çift tırnak işareti (") ile çevrelenmiştir, ancak bu kural başka bir alıntı içinde bir alıntı göründüğünde farklılık gösterir.Bu durumda, iç tırnak tek tırnak işareti ile çevrilidir ( ').

Meydan okuma

Bir dize girdi olarak verildiğinde, iç tırnak için kullanılan çift ve tek tırnak işaretlerini alıp bu dizenin tırnak içine alınabilen bir sürümünü çıktılayın.

Yine de tek bir yakalama var - tek tırnak işaretleri tüm tırnak için kullanılmıyor! Bu zorluk için, tek tırnak işareti yalnızca aşağıdaki durumlarda tırnak işareti için kullanılır:

  • İşaretinden önce alfasayısal olmayan bir karakter veya
  • İşareti olan bir alfanümerik olmayan karakter gelir değil bir boşluk

Alıntılar için kullanılan notların dengelenmesi garanti edilir; yani, geçersiz girdiyi işlemenize gerek yoktur. Ayrıca, çift tırnak işaretleri yalnızca tekli tırnak işaretlerinin teklifi temsil etmek için kullanılabileceği durumlarda kullanılır.

Test Durumları

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.'"

puanlama

Bu , bu yüzden her dilde en kısa cevap kazanır!



2
... if' it" runs' deep"önünde alfasayısal olmayan tek tırnak işaretleri vardır ve bunları "boşluk olmayan alfasayısal olmayan karakter" izler ve yine de dönüştürülürler!
Değer Mürekkep

1
Şahsen, kesme işaretlerinin kullanılmasının zorluğa büyük bir değer kattığını düşünmüyorum.
ATaco

1
@JonathanAllan Evet. Bence bu tek tırnak işaretlerinin kuralları derinlemesine karmaşıklaştırmaksızın fiyat teklifi veya mülkiyet için kullanılıp kullanılmadığını belirlemek zor. Bence bu tek başına iyi bir meydan okuma olacak.
musicman523

1
"Nested, 'quotes, it's unfortunate', to be sure."- Bence kasılmalarla iç içe geçmiş bir davaya ihtiyacınız var.
Sihirli Ahtapot Urn

Yanıtlar:



2

Retina , 34 27 bayt

@Leo sayesinde -7 bayt

T`'"`"'`\W'|"|'[^\w ]
^|$
"

Çevrimiçi deneyin!


İle @carusocomputing said, "Nested, 'quotes, it's unfortunate', to be sure."girdi olarak, tek tırnak şu unfortunatebir ikili tırnak için değişmez, ancak olmalıdır. Hata ayıklamanıza yardımcı olursa, virgül tırnak işaretinden önce geldiğinde çalışır. (Retina'yı bilmiyorum, bu yüzden daha fazla yardım edemem.)
musicman523

@ musicman523 düzeltildi
ovs

\ W'yi doğrudan karakter sınıfınızın içinde kullanabilirsiniz
Leo

0

JavaScript (ES6), 90 bayt

Dizenin içermediğini varsayar #.

s=>'"'+s[r='replace'](/"/g,'#')[r](/(\W)'/g,'$1"')[r](/'([^\w ])/g,'"$1')[r](/#/g,"'")+'"'

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.