बोली मेरी बोली!


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 हाँ। मुझे लगता है कि यह निर्धारित करना मुश्किल है कि उन एकल-उद्धरण चिह्नों का उपयोग नियमों को गहराई से जटिल किए बिना उद्धरण या कब्जे के लिए किया जाता है। मुझे लगता है कि यह अपने आप में एक अच्छी चुनौती होगी।
संगीतज्ञ ५२३

1
"Nested, 'quotes, it's unfortunate', to be sure."- मुझे लगता है कि आपको संकुचन के साथ एक नेस्टेड मामला चाहिए।
मैजिक ऑक्टोपस Urn

जवाबों:


2

रूबी , 64 66 65 64 + 1 = 65 67 66 65 बाइट्स

-nध्वज के लिए +1 बाइट ।

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एक डबल उद्धरण के लिए बदल नहीं है, लेकिन होना चाहिए। यदि यह आपको डीबग करने में मदद करता है, तो यह तब काम करता है जब उद्धरण से पहले अल्पविराम आता है। (मैं रेटिना को नहीं जानता, इसलिए मैं वास्तव में आगे कोई मदद नहीं कर सकता।)
संगीतकार ५२३

@ musicman523 ने इसे ठीक किया
ovs

आप सीधे अपने चरित्र वर्ग के अंदर \ w का उपयोग कर सकते हैं
लियो

0

जावास्क्रिप्ट (ईएस 6), 90 बाइट्स

मान लेता है कि स्ट्रिंग में नहीं है #

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.