string - 如何在字符串 : Swift IOS 中最后一次出现字符后获取子字符串

标签 string swift

基本上,我想制作一个程序,如果您开始输入姓名,该应用程序将从数据库中识别它并为您填写姓名。要做到这一点,如果一个人在完成一个名字后键入一个逗号,该应用程序将开始记录下一个名字是什么。如果它匹配为数据库中其中一个名称的子字符串,它将为用户填写。问题是我需要获取在 textField 字符串中最后一次出现逗号字符之后到目前为止填写的名称的哪一部分,但我不知道如何。例如: 用户类型:“Daniel, Joh” 该应用程序会为您填写 John。谢谢。

最佳答案

如果你真的想要最后一个逗号之后的字符,你可以使用正则表达式:

let string = "Hamilton, A"
let regex = try! NSRegularExpression(pattern: ",\\s*(\\S[^,]*)$")
if let match = regex.firstMatch(in: string, range: string.nsRange), let result = string[match.range(at: 1)] {
    // use `result` here
}

哪里,在 Swift 4 中:

extension String {

    /// An `NSRange` that represents the full range of the string.

    var nsRange: NSRange {
        return NSRange(startIndex ..< endIndex, in: self)
    }

    /// Substring from `NSRange`
    ///
    /// - Parameter nsRange: `NSRange` within the string.
    /// - Returns: `Substring` with the given `NSRange`, or `nil` if the range can't be converted.

    subscript(nsRange: NSRange) -> Substring? {
        return Range(nsRange, in: self)
            .flatMap { self[$0] }
    }
}

关于string - 如何在字符串 : Swift IOS 中最后一次出现字符后获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36905301/

相关文章:

c - 无法让 fgets() 和 strcat() 以所需的方式运行

c - 从函数返回 NULL 值到 C 中的指针

ios - 使用 shouldChangeCharactersInRange 计算 UITextField 验证中的退格

ios - Dropbox-IOS-Swift 3 : Cannot get the thumbnail image

swift - 如何让这个二元运算符与 CGFloats 一起工作?

swift - PFLoginViewController 出现

ios - 布局水平 anchor 问题 - Swift 3

c++ - 为什么 std::string 上的 Sizeof 运算符会产生意外结果?

regex - 从powershell中的字符串中解析guids

python - Pandas :计算字符串中的点 - 与长度相同?