如何在iOS中将子字符串与特定字符串格式分开

时间:2015-05-30 00:04:14

标签: objective-c regex

我试图找到一种方法将某种格式的字符串解析为子字符串数组Ex:原始字符串是

"hii @[jitendra pradhan](contact:3264) and @[iOSs check](contact:2514) abc xyz etc"

我必须像

一样
hii jitendra pradhan and iOSs check abc xyz etc

我试图通过正则表达式删除像 [,],@,(,)这样的特殊字符,但我找不到确切的解决方案,它会给我需要的字符串和各自的ID。

我尝试按“@ [”进行分组,然后获取每个单词的范围。

NSUInteger count = 0, length = [str length];
NSRange range = NSMakeRange(0, length); 
while(range.location != NSNotFound)
{
  range = [str rangeOfString: @"@[" options:0 range:range];
  if(range.location != NSNotFound)
  {
   NSLog (@"%d"range.location);
  }
}

1 个答案:

答案 0 :(得分:0)

使用正则表达式分三步:

删除括号括起的字符
删除前导@"
删除]

NSString *string = @"hii @[jitendra pradhan](contact:3264) and @[iOSs check](contact:2514) abc xyz etc";

NSString *newString = string;
newString = [newString stringByReplacingOccurrencesOfString:@"\\([^)]+\\)" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, newString.length)];
newString = [newString stringByReplacingOccurrencesOfString:@"@\\["        withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, newString.length)];
newString = [newString stringByReplacingOccurrencesOfString:@"\\]"         withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, newString.length)];

NSLog(@"newString: %@", newString);

输出:

  

newString:hii jitendra pradhan和iOSs检查abc xyz等