내 견적을 인용하십시오!


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"영숫자가 아닌 앞에 따옴표가없고 "공백이 아닌 영숫자가 아닌 문자"가 나오지만 변환되고 있습니다!
Value Ink

1
개인적으로 나는 아포스트로피를 처리하는 것이 도전에 많은 가치를 부여한다고 생각하지 않습니다.
ATaco

1
@JonathanAllan 예. 규칙을 복잡하게하지 않으면 서 작은 따옴표가 인용 또는 소유에 사용되는지 판단하기가 어렵다고 생각합니다. 나는 그것이 그 자체로 괜찮은 도전을 할 것이라고 생각합니다.
musicman523

1
"Nested, 'quotes, it's unfortunate', to be sure."수축이있는 중첩 된 케이스가 필요하다고 생각합니다.
Magic Octopus Urn

답변:



2

망막 , 34 27 바이트

@Leo 덕분에 -7 바이트

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

온라인으로 사용해보십시오!


@carusocomputing said, "Nested, 'quotes, it's unfortunate', to be sure."입력으로, 단일 인용 다음은 unfortunate큰 따옴표로 변경되지 않지만해야합니다. 디버그하는 데 도움이되면 쉼표가 따옴표 앞에 오면 작동합니다. (나는 Retina를
모르므로

@ musicman523는 고정
OVS

캐릭터 클래스 내에서 직접 \ w를 사용할 수 있습니다
Leo

0

자바 스크립트 (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.