2010-12-12 68 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; 
}