2010-12-12 9 views
5

ho un NSString come segue:parte di un NSString

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

Ho solo bisogno la prima parte (prima parte <a href), e non può capire come rimuovere la seconda parte.

Ho provato una tonnellata, ma non ha funzionato.

+2

Quali metodi hai provato? – Abizern

+0

Ho provato Componenti separati e ho cercato altri, ma non ne ho trovati altri. –

risposta

18

Usa qualcosa come:

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

Così i due metodi importanti sono substringToIndex: e rangeOfString:.

3

C'è una sezione nel riferimento alla classe NSString su Finding Characters and Substrings che elenca alcuni metodi utili.

e nella guida String programmazione v'è una sezione sulla Searching, Comparing and Sorting Strings.

Non sto facendo shirty nel sottolineare questi collegamenti. Hai detto che non hai trovato i metodi, quindi ecco un paio di riferimenti per aiutarti a sapere dove cercare. Imparare a leggere la documentazione è parte dell'apprendimento di come utilizzare i framework Cocoa e Cocoa-Touch.

0

È possibile utilizzare qualcosa di simile a questa versione modificata di ciò che è stato pubblicato come risposta a una domanda simile qui https://stackoverflow.com/a/4886998/283412. Ciò prenderà la stringa HTML e rimuoverà la formattazione. È sufficiente modificare la parte while per rimuovere la regex di ciò che si desidera eliminare:

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