删除部分NSString

时间:2010-12-12 18:31:31

标签: ios4 nsstring substring explode

我有一个NSString如下:

<img alt="996453912" src="http://d2gg0uigdtw9zz.cloudfront.net/large/996453912.jpg" /><a href="http://www.dealcatcher.com/shop4tech-coupons">Shop4Tech Coupons</a>

我只需要第一部分(在<a href部分之前),我无法弄清楚如何删除第二部分。

我尝试了很多,但它没有用。

3 个答案:

答案 0 :(得分:18)

使用类似:

NSRange rangeOfSubstring = [string rangeOfString:@"<a href"];

if(rangeOfSubstring.location == NSNotFound)
{
     // error condition — the text '<a href' wasn't in 'string'
}

// return only that portion of 'string' up to where '<a href' was found
return [string substringToIndex:rangeOfSubstring.location];

因此,两个相关方法是substringToIndex:rangeOfString:

答案 1 :(得分:3)

NSString Class引用中有一个关于Finding Characters and Substrings的部分,其中列出了一些有用的方法。

在字符串编程指南中有一个关于Searching, Comparing and Sorting Strings.

的部分

我指出这些链接并不是很邋..你说你找不到方法所以这里有几个参考资料可以帮助你知道在哪里看。学习如何阅读文档是学习如何使用Cocoa和Cocoa-Touch框架的一部分。

答案 2 :(得分:0)

您可以使用与此类修改版本类似的内容作为此处https://stackoverflow.com/a/4886998/283412的类似问题的答案。这将获取您的HTML字符串并删除格式。只需修改while部分即可删除要剥离的正则表达式:

-(void)myMethod
{
   NSString* htmlStr = @"<some>html</string>";
   NSString* strWithoutFormatting = [self stringByStrippingHTML:htmlStr];
}

-(NSString *)stringByStrippingHTML:(NSString*)str
{
  NSRange r;
  while ((r = [str rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
  {
     str = [str stringByReplacingCharactersInRange:r withString:@""];
  }
  return str;
}