2012-07-26 13 views
7

necesito un poco de ayuda en la construcción de una expresión regular para eliminar los enlaces href con los términos de búsqueda a partir de una larga cadena que i continuación, analizar en una vista webexpresión regular en ios para eliminar los enlaces href

un ejemplo de la cadena href: <a href="/search/?search=Huntington">Huntington</a>

me gustaría eliminar Everthing pero el texto del enlace (sólo el propio enlace), pero que tienen problemas

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

cualquier ayuda sería muy bien acogida

Gracias

Respuesta

8

creo

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

debería funcionar (he probado la expresión regular en TextMate pero no en XCode).

+0

esto también debería funcionar:. " " – CarlJ

+0

bueno, si desea reemplazar con juste el texto sin formato del enlace, debe tener un grupo entre paréntesis en alguna parte – Zoleas

+3

sry, copiar y pegar incorrectamente la expresión regular, aquí está la correcta:" (. *?) <\/a> " – CarlJ

2

@ Helium3 y @Carl Explicar justo encima y yo quiero escribir como corectly y yo creamos esta función para eliminar una etiqueta href del NSString

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