我有一个 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
部分之前),我不知道如何删除第二部分。
我已经尝试了很多,但它没有奏效。
使用类似的东西:
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:。
NSString 类参考中有一节关于查找字符和子字符串,其中列出了一些有用的方法。
在字符串编程指南中有一个关于搜索、比较和排序字符串的部分。
指出这些链接时,我并不急于求成。你说过你找不到方法,所以这里有一些参考资料可以帮助你知道去哪里找。学习如何阅读文档是学习如何使用 Cocoa 和 Cocoa-Touch 框架的一部分。
您可以使用与此处发布的类似问题的修改版本类似的内容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;
}