swift - 在 Swift 字符串文字中转义反斜杠

标签 swift string escaping

我有这样的字符串,其中 \/ 应该是字符串值的一部分。

["medium-video\/mp4",
"hd720-video\/mp4",
"medium-video\/webm",
"small-video\/3gpp"]

Swift 提示反斜杠。我试过 \\/,但是当尝试使用它们时,字符串有 \\/ 而不是 \/。不确定如何解决这个问题。

如果我使用双反斜杠打印数组,它们只会出现在字符串中,而不是我期望的 \/

["medium-video\\/mp4", "hd720-video\\/mp4", "medium-video\\/webm", "small-video\\/3gpp"]

最佳答案

(假设我期待的“/”。) 似乎是错误的假设。只是作为历史保留在这里...

只需将 \/ 替换为 /

每种语言都定义了它的有效转义序列,在 Swift 中(或在标准 C 中)\/ 不是有效的转义序列,斜线不能被转义。

(在 JSON 中,\/ 是有效的,但您无需转义斜杠。)

无论如何,在 Swift 中:

["medium-video/mp4",
"hd720-video/mp4",
"medium-video/webm",
"small-video/3gpp"]

假设 \/ 我期待您已经有了正确的答案。

["medium-video\\/mp4",
 "hd720-video\\/mp4",
 "medium-video\\/webm",
 "small-video\\/3gpp"]

我猜,您弄错的一件事是您如何确认字符串数组的内容。

let arr = ["medium-video\\/mp4",
 "hd720-video\\/mp4",
 "medium-video\\/webm",
 "small-video\\/3gpp"]

print(arr)
["medium-video\\/mp4", "hd720-video\\/mp4", "medium-video\\/webm", "small-video\\/3gpp"]

上面的方法可能不是一个好方法,因为 Swift 使用调试符号来打印 Array 的内容。要检查字符串数组中的实际内容,请试试这个。

arr.forEach {print($0)}
medium-video\/mp4
hd720-video\/mp4
medium-video\/webm
small-video\/3gpp

关于swift - 在 Swift 字符串文字中转义反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45393504/

相关文章:

batch-file - Windows Batch - 保护变量中的特殊字符

mysql - 在 MySql 中访问列名中包含多个点的列数据

c - 映射枚举和字符串

javascript - 有效地替换字符串中的所有重音字符?

swift - 为类函数创建并运行带有多个参数的选择器

ios - Git 说 xcode Storyboard文件被修改

c# - 将十六进制字符串转换为二进制字符串 C#

javascript - 如果我清理所有输入,是否需要输出转义?

ios - 这是变量还是函数?或两者?

ios - 使用 Swift 的 UITableView