2012-07-26 63 views
7

我需要建立一个正则表达式来删除一个长字符串与搜索条件HREF链接,然后我解析为一个Web视图正则表达式来删除HREF链接

中的href串的例子一些帮助: <a href="/search/?search=Huntington">Huntington</a>

我想删除寄托都但链接(只链接自身)的纯文本,但在遇到问题时

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

任何帮助将受到极大的欢迎

感谢

回答

8

我觉得

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

应该工作(我测试了TextMate的正则表达式,但没有的XCode)。

+0

这也应该工作。““ – CarlJ 2012-07-26 08:41:05

+0

好吧,如果要替换为正确的链接的纯文本,你必须有一个组之间的圆括号 – Zoleas 2012-07-26 08:50:21

+3

sry,错误的复制和粘贴正则表达式,这里是正确的:”(。*?)<\/a> “ – CarlJ 2012-07-26 08:52:13

2

@ Helium3和@Carl解释正上方,我想作为corectly写,我创造了这个功能从NSString的

删除href标记
-(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; 
}