2010-12-12 69 views
5

的删除部分我有一个NSString如下:一个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部分之前),并且我不能找出如何删除第二部分。

我试了一吨,但它没有奏效。

+2

您试过了哪些方法? – Abizern 2010-12-12 18:43:19

+0

我已经试过Componentsseperatedby并已经找过别人,但找不到别人。 – 2010-12-12 18:49:59

回答

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:

3

NSString类参考中有关于Finding Characters and Substrings的部分列出了一些有用的方法。

和字符串编程指南中有一个在指出这些环节上Searching, Comparing and Sorting Strings.

一节我不是好生气的。你说过你找不到方法,所以这里有几个参考资料可以帮助你知道在哪里寻找。学习如何阅读文档是学习如何使用Cocoa和Cocoa-Touch框架的一部分。

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; 
}