Objective-C
NSString *address = @"123 Main Street, New York, NY 10001";
NSError *error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[0-9]+[A-Za-z\\s]+," options:NSRegularExpressionCaseInsensitive error:&error];
[regex enumerateMatchesInString:address options:0 range:NSMakeRange(0, address.length) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop){
NSString *street = [address substringWithRange:result.range];
street = [street stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@","]];
NSLog(@"street: %@", street);
}];
regex = [NSRegularExpression regularExpressionWithPattern:@",[A-Za-z\\s]+," options:NSRegularExpressionCaseInsensitive error:&error];
[regex enumerateMatchesInString:address options:0 range:NSMakeRange(0, address.length) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop){
NSString *city = [address substringWithRange:result.range];
city = [city stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@", "]];
NSLog(@"city: %@", city);
}];
regex = [NSRegularExpression regularExpressionWithPattern:@",[\\s]*[A-Z]{2}[\\s]" options:NSRegularExpressionCaseInsensitive error:&error];
[regex enumerateMatchesInString:address options:0 range:NSMakeRange(0, address.length) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop){
NSString *state = [address substringWithRange:result.range];
state = [state stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@", "]];
NSLog(@"state: %@", state);
}];
regex = [NSRegularExpression regularExpressionWithPattern:@"[\\s][0-9]{5}" options:NSRegularExpressionCaseInsensitive error:&error];
[regex enumerateMatchesInString:address options:0 range:NSMakeRange(0, address.length) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop){
NSString *zip = [address substringWithRange:result.range];
zip = [zip stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@", "]];
NSLog(@"zip: %@", zip);
}];
Swift
var error:NSError?
let address:NSString = "123 Main Street, New York, NY 10001"
var regex = NSRegularExpression(pattern: "^[0-9]+[A-Za-z\\s]+,", options:.CaseInsensitive, error: &error)
regex?.enumerateMatchesInString(address, options: .WithTransparentBounds, range: NSMakeRange(0, address.length)) {
(result: NSTextCheckingResult! , _, _) in
var street:NSString = address.substringWithRange(result.range)
street = street.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: ","))
NSLog("street: %@",street);
}
regex = NSRegularExpression(pattern: ",[A-Za-z\\s]+,", options:.CaseInsensitive, error: &error)
regex?.enumerateMatchesInString(address, options: .WithTransparentBounds, range: NSMakeRange(0, address.length)) {
(result: NSTextCheckingResult! , _, _) in
var city:NSString = address.substringWithRange(result.range)
city = city.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: ", "))
NSLog("city: %@",city);
}
regex = NSRegularExpression(pattern: ",[\\s]*[A-Z]{2}[\\s]", options:.CaseInsensitive, error: &error)
regex?.enumerateMatchesInString(address, options: .WithTransparentBounds, range: NSMakeRange(0, address.length)) {
(result: NSTextCheckingResult! , _, _) in
var state:NSString = address.substringWithRange(result.range)
state = state.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: ", "))
NSLog("state: %@",state);
}
regex = NSRegularExpression(pattern: "[\\s][0-9]{5}", options:.CaseInsensitive, error: &error)
regex?.enumerateMatchesInString(address, options: .WithTransparentBounds, range: NSMakeRange(0, address.length)) {
(result: NSTextCheckingResult! , _, _) in
var zip:NSString = address.substringWithRange(result.range)
zip = zip.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: ", "))
NSLog("zip: %@",zip);
}