Kin*_*iss 4 iphone nspredicate
我想从NSString中提取电话号码.
例如:在字符串Call John @ 994-456-9966中,我想提取994-456-9966.
我试过代码,
NSString *nameRegex =@"(\(\d{3}\)\s?)?\d{3}[-\s\.]\d{4}";
NSPredicate *nameTest = [NSPredicate predicateWithFormat:@"ANY keywords.name CONTAINS[c] %@",nameRegex];
validationResult=[nameTest evaluateWithObject:phoneNo];
Run Code Online (Sandbox Code Playgroud)
但我无法得到确切的结果.谁能帮我?提前致谢.
我想这就是你要找的东西:
NSString *myString = @"John @ 123-456-7890";
NSString *myRegex = @"\\d{3}-\\d{3}-\\d{4}";
NSRange range = [myString rangeOfString:myRegex options:NSRegularExpressionSearch];
NSString *phoneNumber = nil;
if (range.location != NSNotFound) {
phoneNumber = [myString substringWithRange:range];
NSLog(@"%@", phoneNumber);
} else {
NSLog(@"No phone number found");
}
Run Code Online (Sandbox Code Playgroud)
您可以依赖Cocoa内置的默认正则表达式搜索机制.这样,您就可以提取与电话号码相对应的范围(如果有).
请记住,在创建正则表达式时,请始终执行双向转义反斜杠.
根据您要提取的电话号码部分调整您的正则表达式.
Cocoa提供了处理正则表达式的非常简单的工具.对于更复杂的需求,您应该查看Cocoa项目的强大RegexKitLite扩展.
| 归档时间: |
|
| 查看次数: |
3377 次 |
| 最近记录: |