อ้างคำพูดของฉัน!


13

คำพูดคือ "การทำซ้ำของหนึ่งในการแสดงออกเป็นส่วนหนึ่งของอีกคนหนึ่ง" ในภาษาอังกฤษแบบอเมริกันคำพูดถูกล้อมรอบด้วยเครื่องหมายอัญประกาศคู่ (") เช่นเดียวกับในประโยคก่อนหน้าอย่างไรก็ตามกฎนี้แตกต่างกันเมื่อคำพูดปรากฏขึ้นภายในเครื่องหมายคำพูดอื่นในกรณีนี้คำพูดภายในจะถูกล้อมรอบด้วยเครื่องหมายคำพูดเดี่ยว ( ')

ท้าทาย

รับสตริงเป็นอินพุตเอาต์พุตเวอร์ชันที่สามารถอ้างอิงได้ของสตริงนั้นโดยการแลกเปลี่ยนเครื่องหมายอัญประกาศคู่และเดี่ยวที่ใช้สำหรับอัญประกาศด้านใน

มีเพียงหนึ่ง catch แต่ - ไม่ใช่เครื่องหมายคำพูดเดียวที่ใช้สำหรับใบเสนอราคา! สำหรับความท้าทายนี้จะใช้เครื่องหมายอัญประกาศเดี่ยวสำหรับใบเสนอราคาหาก:

  • เครื่องหมายถูกนำหน้าด้วยอักขระที่ไม่ใช่ตัวอักษรและตัวเลขหรือ
  • เครื่องหมายจะตามด้วยอักขระที่ไม่ใช่ตัวอักษรและตัวเลขที่ไม่ใช่ช่องว่าง

เครื่องหมายที่ใช้สำหรับใบเสนอราคารับประกันว่าจะสมดุล นั่นคือคุณไม่จำเป็นต้องจัดการอินพุตที่ไม่ถูกต้อง นอกจากนี้เครื่องหมายอัญประกาศคู่จะถูกใช้เฉพาะในสถานการณ์ที่สามารถใช้เครื่องหมายอัญประกาศเดี่ยวเพื่อใช้แทนการเสนอราคาได้

กรณีทดสอบ

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
โดยส่วนตัวแล้วฉันไม่รู้สึกว่าการจัดการอะพอสโทรฟีช่วยเพิ่มคุณค่าให้กับความท้าทาย
ATaco

1
@JanathanAllan ใช่ ฉันคิดว่าเป็นการยากที่จะตัดสินว่าเครื่องหมายคำพูดเดียวนั้นใช้สำหรับการเสนอราคาหรือการครอบครองโดยไม่ต้องมีความซับซ้อนของกฎ ฉันคิดว่ามันจะเป็นการท้าทายที่ดีสำหรับตัวเอง
musicman523

1
"Nested, 'quotes, it's unfortunate', to be sure."- ฉันคิดว่าคุณต้องมีคดีซ้อนที่มีการหดตัว
Magic Octopus Urn

คำตอบ:


2

Ruby , 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."เป็น input ต่อไปนี้อ้างเดียวunfortunateไม่ได้เปลี่ยนไปเป็นคู่อ้าง แต่ควรจะ หากมันช่วยให้คุณดีบั๊กมันจะทำงานเมื่อเครื่องหมายจุลภาคมาก่อนข้อความอ้างอิง (ฉันไม่รู้จัก Retina ดังนั้นฉันไม่สามารถช่วยอะไรได้อีกเลย)
musicman523

@ musicman523 คงมัน
OVS

คุณสามารถใช้ \ w โดยตรงในชั้นเรียนตัวละครของคุณ
Leo

0

JavaScript (ES6), 90 ไบต์

#ถือว่าสตริงไม่ได้มี

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.