我想从 NSString 中提取电话号码。
例如:在字符串中致电约翰@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];
但我无法得到确切的结果。谁能帮我?提前致谢。
我认为这就是您正在寻找的:
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");
}
您可以依赖 Cocoa 内置的默认正则表达式搜索机制。这样您就可以提取与电话号码对应的范围(如果存在)。
请记住在创建正则表达式时始终使用双转义反斜杠。
根据您想要提取的电话号码部分调整您的正则表达式。
Edit
Cocoa 提供了非常简单的工具来处理正则表达式。对于更复杂的需求,你应该看看强大的正则表达式套件精简版 http://regexkit.sourceforge.net/RegexKitLite/Cocoa 项目的扩展。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)