我得到以下格式的结果:
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 不变。