2017-12-13 18 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は三重二重引用符を使用する方法を学ぶ必要があります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 "'私がデバッガでそれをプリントアウトするときに与えるものです。 1つのバックスラッシュ、私はここに何かが欠けていると感じている:/ – sheinix

+1

まあ、あなたは本当に正しいです。奇妙なことは、 'print()'関数を使って印刷すると、正しい文字列が1つのバックスラッシュで得られるのですが、私がデバッガで "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日"