【发布时间】:2013-04-26 01:47:55
【问题描述】:
我得到以下格式的结果:
NSString *placeResult = @"111 Main Street, Cupertino, CA"
或者有时结果包含地名:
NSString *placeResult = @"Starbucks, 222 Main Street, Cupertino, CA"
我需要检查第一个逗号之前的文本是数字还是字母。如果字符是字母,那么我需要从 NSMutableString 中删除第一个逗号和它之前的所有字母,并将唯一的字母存储在变量中。因此,第二个示例中的文本将如下所示:
@"222 Main Street, Cupertino, CA"
如何使用 NSRegularExpression、NSTextCheckingResult 和 NSMutableString 完成此任务?
我在想:
NSString *str= (NSString *)location.address;
NSMutableString *muteStr;
muteStr = [NSMutableString stringWithString:str];
NSArray *matches = [detector matchesInString:muteStr options:0 range:NSMakeRange(0, muteStr.length)];
for (NSTextCheckingResult *match in matches)
{
if (match.resultType == NSTextCheckingTypeAddress)
{
NSDictionary *data = [match addressComponents];
NSString *name = data[NSTextCheckingNameKey];
if (!name && match.range.location > 0)
{
NSRegularExpression *scan = [NSRegularExpression regularExpressionWithPattern:@"(?= )" options:0 error:NULL];
//******I'm not sure if I have regularExpressionWithPattern correct?
NSTextCheckingResult *result = [scan firstMatchInString:@"," options:0 range:NSMakeRange(0, name.length)];
不确定从这里开始做什么,或者即使这是正确的方法?
再次,我需要检查第一个逗号之前的文本是数字还是字母。如果文本/字符是字母,那么我需要从 NSMutableString 中删除第一个逗号和它之前的所有字母,并将唯一的字母存储在变量中。如果字符是数字,我需要保持 NSMutableString 不变。
【问题讨论】:
-
什么是“字母”?
标签: objective-c regex nsmutablestring nsregularexpression