2012-07-26 8 views
7

Ich benötige Hilfe entfernen href Links mit Suchbegriffen aus einer langen Kette zu entfernen, die ich dann in eine Web-Ansichtregulärer Ausdruck in ios in dem Aufbau einen regulären Ausdrucks href Links

ein Beispiel für die href Zeichenfolge analysieren: <a href="/search/?search=Huntington">Huntington</a>

ich mag das Everthing aber den Klartext des Link entfernen (nur der Link selbst), aber mit Schwierigkeiten

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<a href=\"/search/?search=([A-Z][a-z])\"" options:NSRegularExpressionCaseInsensitive error:&error]; 

jede Hilfe wäre sehr

begrüßen 0

Dank

Antwort

8

Ich denke

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<a href=\"[^\"]+\">([^<]+)</a>" options:NSRegularExpressionCaseInsensitive error:&error]; 
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@"$1"]; 

funktionieren sollte (ich die regexp in Textmate getestet, aber nicht in XCode).

+0

dies sollte auch funktionieren. „ " – CarlJ

+0

gut, wenn Sie mit Juste den Nur-Text des Links ersetzen möchten, müssen Sie eine Gruppe zwischen Klammern haben irgendwo – Zoleas

+3

sry, falsche Kopie & einfügen Regex, hier ist die richtige:" (. *?) <\/a> " – CarlJ

2

@ Helium3 und @Carl rechts oben Erklären Sie und ich als corectly schreiben wollen und Ich habe diese Funktion für a href Tag aus NSString löschen

-(NSString *)deleteAHref:(NSString *)originalString 
{ 
    NSError *regexError = nil; 
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<a href=.*?>(.*?)</a>" options:NSRegularExpressionCaseInsensitive error:&regexError]; 
    NSString *modifiedString = [regex stringByReplacingMatchesInString:originalString options:0 range:NSMakeRange(0, [originalString length]) withTemplate:@"$1"]; 
    return modifiedString; 
}