我想从字符串中删除列表中没有的每个字符:“0123456790”
我试过:

let characters = NSCharacterSet(charactersIn: "0123456789.").inverted
string = string.replacingOccurrences(of: characters.allCharacters().description, with: "", options: .regularExpression)

extension CharacterSet {
    func allCharacters() -> [Character] {
        var result: [Character] = []
        for plane: UInt8 in 0...16 where self.hasMember(inPlane: plane) {
            for unicode in UInt32(plane) << 16 ..< UInt32(plane + 1) << 16 {
                if let uniChar = UnicodeScalar(unicode), self.contains(uniChar) {
                    result.append(Character(uniChar))
                }
            }
        }
        return result
    }
}

最佳答案

斯威夫特3

string = (string.components(separatedBy: NSCharacterSet(charactersIn: "0123456789.").inverted) as NSArray).componentsJoined(by: "")

10-07 13:14
查看更多