我让用户输入他们的地址,我需要从中提取邮政编码。
我发现这个 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/