ios - 从字符串中提取 5 位邮政编码

标签 ios regex swift nsregularexpression

我让用户输入他们的地址,我需要从中提取邮政编码。

我发现这个 RegEx 应该可以工作:\d{5}([\-]\d{4})? 但是我很难让它在 Swift 上工作.

这就是我所在的地方:

private func sanatizeZipCodeString() -> String {
        let retVal = self.drugNameTextField.text

        let regEx = try! NSRegularExpression(pattern: "", options: .CaseInsensitive)

        let match = regEx.matchesInString(retVal!, options: [], range: NSMakeRange(0, (retVal?.characters.count)!))

        for zip in match {
            let matchRange = zip.range

        }
    }

我不明白为什么我不能直接拉出第一个匹配的字符串!

最佳答案

你可以试试这个

func match() {
    do {
        let regex = try NSRegularExpression(pattern: "\\b\\d{5}(?:[ -]\\d{4})?\\b", options: [])
        let retVal = "75463 72639823764 gfejwfh56873 89765"
        let str = retVal as NSString
        let postcodes = regex.matchesInString(retVal,
        options: [], range: NSMakeRange(0, retVal.characters.count))
        let postcodesArr =  postcodes.map { str.substringWithRange($0.range)}
        // postcodesArr[0] will give you first postcode
    } catch let error as NSError {

    }
}   

关于ios - 从字符串中提取 5 位邮政编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35162104/

相关文章:

ios - 是否可以在 statusBarOrientation 更改时添加观察者或通知?

objective-c - 将类 y 中类 x 的编程实例链接到类 x 的 View Controller

java - 不同 tomcat 日志条目的正则表达式模式

ios - 在 iOS 中镜像前置摄像头视频

ios - indexpath.row 是否负责迭代数组?

ios - 如何找出高能和cpu影响的原因?

iOS 推送通知 SSL 证书

regex - 正则表达式 [a-Z] 是否有效,如果是,那么它是否与 [a-zA-Z] 相同?

用递增数字替换字符串的正则表达式

ios - 无法使用 Alamofire 从阵列上传多个文件