동사 문자열 리터럴에서 이중 따옴표를 피할 수 있습니까?
C#의 동사 문자열 리터럴(@"foo")에서 백슬래시는 이스케이프로 처리되지 않으므로 \"를 수행하여 이중 따옴표를 얻는 것은 효과가 없습니다.동사적 문자열 리터럴로 이중 따옴표를 얻을 수 있는 방법이 있습니까?
이것은 당연히 작동하지 않습니다.
string foo = @"this \"word\" is escaped";
중복된 이중 따옴표를 사용합니다.
@"this ""word"" is escaped";
출력:
this "word" is escaped
큰따옴표를 사용합니다.
string foo = @"this ""word"" is escaped";
더 많은 정보를 추가하기 위해, 당신의 예는 다음과 같이 없이 작동할 것입니다.@기호(\를 사용하여 탈출하는 것을 방지함), 다음과 같은 방식:
string foo = "this \"word\" is escaped!";
두 가지 방식으로 모두 작동하지만, 예를 들어 파일 이름(문자열에 \가 많은 경우)을 사용하는 것이 더 쉽기 때문에 이중 따옴표 스타일을 사용하는 스타일을 선호합니다.
이렇게 하면 C# 리터럴과 같은 질문을 해결할 수 있습니다.
다음은 링크된 콘텐츠의 표입니다.
정규 리터럴 동사형 문자 결과 문자열 "Hello"@"Hello"Hello"Backslash: \\"@"Backslash: \"Backslash: \"Quote: \""@"Quote: """Quote: ""CRLF:\r\nPost CRLF"@"CRLF:
Post CRLF"CRLF:
Post CRLF
업데이트: C#11 미리보기 기능 포함 - 원시 문자열 리터럴
string foo1 = """
this "word" is escaped
""";
string foo2 = """this "word" is escaped""";
기록:
GitHub에는 원시 문자열 리터럴에 대한 더 나은 지원을 제공하는 C# 언어에 대한 제안이 있습니다.한 가지 유효한 답변은 C# 팀이 언어에 새로운 기능(예: 트리플 쿼트 - 파이썬)을 추가하도록 권장하는 것입니다.
https://github.com/dotnet/csharplang/discussions/89#discussioncomment-257343 을 참조하십시오.
단순한 탈출 시퀀스는 문자 그대로 해석됩니다따옴표 이스케이프 시퀀스만(
"")는 문자 그대로 해석되지 않으며, 하나의 이중 따옴표를 생성합니다.또한, 동사적으로 보간된 문자열 브레이스 이스케이프 시퀀스의 경우 ({{그리고.}})는 문자 그대로 해석되지 않으며 단일 대괄호 문자를 생성합니다.
언급URL : https://stackoverflow.com/questions/1928909/can-i-escape-a-double-quote-in-a-verbatim-string-literal
'source' 카테고리의 다른 글
| py.test에 특정 디렉토리를 건너뛰도록 지시하는 방법은 무엇입니까? (0) | 2023.07.16 |
|---|---|
| 키보드가 나타날 때 UIScrollView를 스크롤하려면 어떻게 해야 합니까? (0) | 2023.07.16 |
| Ruby와 함께 사용되는 MongoDB의 문자열 데이터 유형에 대한 최대 길이는 얼마입니까? (0) | 2023.07.16 |
| vuejs에서 vuex로 get request 만들기를 사용하는 방법 (0) | 2023.07.16 |
| Laravel 7 - Create 메서드를 사용하는 경우 유지한 직후의 Empty Mandwell Model 개체 (0) | 2023.06.26 |