Цитуйте мою цитату!


13

Цитата є «повторенням одного виразу , як частина іншого». В американській англійській мові цитата оточена подвійними лапками ("), як і в попередньому реченні. Однак це правило відрізняється, коли цитата з'являється всередині іншої цитати. У цьому випадку внутрішня цитата оточена одинарними лапками. (').

Виклик

З огляду на рядок як вхідний, виведіть версію, що ведеться кошторисом, обмінявшись подвійними та одноцитатними знаками, які використовуються для внутрішньої лапки.

Однак є лише один улов - не всі однозначні лапки використовуються для цитування! Для цього виклику одноцитатний знак використовується для лапок, якщо і тільки якщо:

  • Марку передує не буквено-цифровий символ, або
  • Марка супроводжується не алфавітно-цифровим символом, який не є пробілом

Гарантовані знаки для котирувань гарантовано збалансовані; тобто вам не потрібно обробляти недійсний ввід. Крім того, подвійні лапки застосовуватимуться лише в тих ситуаціях, коли однозначні лапки можна використовувати для представлення лапок.

Випробування

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

Оцінка балів

Це , тому найкоротша відповідь на кожній мові виграє!



2
... if' it" runs' deep"має одинарні лапки, яким не передує не буквено-цифровий знак, а також їх "не алфавітно-цифровий символ, який не є пробілом", і все ж вони трансформуються!
Значення чорнила

1
Особисто я не відчуваю, що поводження з апострофами додає великої цінності виклику.
Атако

1
@JonathanAllan Так. Я думаю, що важко визначити, чи використовуються ці однозначні лапки для котирування чи володіння без глибокого ускладнення правил. Я думаю, що це зробило б гідний виклик самостійно.
musicman523

1
"Nested, 'quotes, it's unfortunate', to be sure."- Я думаю, вам потрібен вкладений випадок із сутичками.
Чарівний восьминога Урна

Відповіді:


2

Рубі , 64 66 65 64 + 1 = 65 67 66 65 байт

+1 байт для -nпрапора.

gsub(/"|(?<!\w)'|'(?!\w|\s)/){"'\""["\"'".index$&]}
$><<?"+$_+?"

Спробуйте в Інтернеті!


Здається, це не робиться правильно для однозначних лапок, перед якими пробіл (який справді використовується для лапок)
musicman523

@ musicman523 спасибі, виправлено!
Значення чорнила

2

Сітківка , 34 27 байт

-7 байт завдяки @Leo

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

Спробуйте в Інтернеті!


З @carusocomputing said, "Nested, 'quotes, it's unfortunate', to be sure."введенням вказівки, що належать до однієї цитати unfortunate, не змінюються на подвійну, а повинні бути. Якщо це допоможе вам налагодити, він працює, коли коза надходить до лапки. (Я не знаю Retina, тому я не можу більше допомогти.)
musicman523

@ musicman523 виправив це
1717

Ви можете використовувати \ w безпосередньо у своєму класі персонажів
Лев,

0

JavaScript (ES6), 90 байт

Припускає, що рядок не містить #.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.