我从外部来源收到字符串的json数组,而我的某些字符串看起来像
"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00"
我想过滤掉仅包含这些空值的所有字符串。 我已经尝试过
arr = arr.filter { (str: String) -> Bool in
let invalid = String(data: Data.init(count: str.count), encoding: String.Encoding.utf8)
print(str)
return str == invalid
}
由于这些都是空终止符,因此我决定创建一个与str
相同长度的空字符串,但只包含空终止符并进行比较。
但这不起作用。任何帮助将不胜感激。
答案 0 :(得分:2)
我不认为这些是空终止符,因为反斜杠已转义。这些只是重复多次的四个字符序列\x00
。
要匹配这种模式,可以使用正则表达式:
let regex = try! NSRegularExpression(pattern: "^(?:\\\\x00)+$", options: [])
let string = "\\x00\\x00\\x00\\x00\\x00"
// the below will evaluate to true if the string is full of \x00
regex.firstMatch(in: string, options: [], range: NSRange(location: 0, length: string.count)) != nil