2017-12-13 4 views
0

:의 출현을 \:으로 바꾸려고하는데 문자가 오류로 잘못되었습니다. 내가 \\\:으로 탈출 시도했다, 그러나 이중 막대 발생을 교체하는 것 : 원래 STR에서" :"의 출현 교체

2000:2018-07-25T10\:31\:06Z:2018-07-30 

:

내가 얻을 필요가

2000:2018-07-25T10:31:06Z:2018-07-30 

와 난 받기 :

2000:2018-07-25T10\\\:31\\\:06Z:2018-07-30 

내 코드 :

newString.replacingOccurrences(of: ":", with: "\:") //Invalid escape sequence in literal 

newString.replacingOccurrences(of: ":", with: "\\:") //not quite want I need 
+0

@Moritz 이제 문자열이 –

+0

@Moritz을 잘못된 풍경 서열을 가지는 편집 후 나는 그의 의도라고 생각 수동으로 추가하거나 제거 할 필요가없는 json 문자열에서 이스케이프를 제거하는 방법을 묻는 것이 었습니다. –

+0

귀하의 편집 내용을 이해했습니다. OP는 3 중 이중 따옴표를 사용하는 법을 배워야합니다. https://github.com/apple/swift-evolution/blob/master/proposals/0168-multi-line-string-literals.md –

답변

0

다른 백 슬래시로 이스케이프 처리해야합니다. 따라서 ":""\:"으로 바꾸려면 "\\:"으로 바꿔야합니다.

let backslashString = string.replacingOccurrences(of: ":", with: "\\:") 
+0

이렇게하면 디버거에서 출력 할 때''2000 \\ : 2018-07-25T10 \\ : 31 \\ : 06Z \\ : 2018-07-30 "'이 표시됩니다. 하나의 백 슬래시, 내가 뭔가를 여기에서 놓치고 있다는 느낌이 들었다./ – sheinix

+1

글쎄, 네가 맞다. 이상하게도'print()'함수를 사용하여 인쇄 할 때 하나의 백 슬래시로 올바른 문자열을 얻을 수 있지만 디버거에서 "po"로 인쇄하면 두 개의 백 슬래시가있는 문자열이 표시됩니다. 흥미있는 – sheinix

+0

흠, 나는 그것을 설명 할 수 없다! 다행 했어. –

0
우리는이 방법으로 할 수

:

는 = OrginalStr하자 ": 2018-07-25T10 : 2000 31 : 06Z : 2018년 7월 30일"

하자 strTobeReplace = "\"

할 resultStr = OrginalStr.replacingOccurrences (의 : ":"와 "(strTobeReplace)")

인쇄 (resultStr)

출력 :

"2000 : 2018-07-25T10 : 31 : 06Z : 2018년 7월 30일"