5

我有一个 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部分之前),我不知道如何删除第二部分。

我已经尝试了很多,但它没有奏效。

4

3 回答 3

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:

于 2010-12-12T18:55:28.103 回答
3

NSString 类参考中有一节关于查找字符和子字符串,其中列出了一些有用的方法。

在字符串编程指南中有一个关于搜索、比较和排序字符串的部分。

指出这些链接时,我并不急于求成。你说过你找不到方法,所以这里有一些参考资料可以帮助你知道去哪里找。学习如何阅读文档是学习如何使用 Cocoa 和 Cocoa-Touch 框架的一部分。

于 2010-12-12T20:05:44.220 回答
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;
}
于 2013-05-31T12:30:49.513 回答