我在UIWebview
中解析iOS
的字符串。
我有一个数据 -
<p>The post <a rel="nofollow" href="http://www.someurl.com/bikes/triumph-motorcycles-plans-sell-2700-units-2015-16/">Triumph Motorcycles Plans To Sell Over 2700 Units By 2015-16</a> appeared first on <a rel="nofollow" href="http://www.someurl.com">MotorBuzz - Car Bike News & Reviews</a>.</p>
我想要的是删除文本的超链接。我不想删除文本我只想禁用文本的超链接。
因此,对于上述数据,它应该看起来像 -
<p>The post Triumph Motorcycles Plans To Sell Over 2700 Units By 2015-16 appeared first on MotorBuzz - Car Bike News & Reviews.</p>
所以请告诉我 iOS / Objective -C 中的任何正则表达式或任何字符串替换解决方案。
感谢。
答案 0 :(得分:2)
您可以使用NSAttributedString
。首先,将html字符串转换为NSAttributedString
,然后从中获取实际字符串。
NSString *html = @"<p>The post <a rel=\"nofollow\" href=\"http://www.someurl.com/bikes/triumph-motorcycles-plans-sell-2700-units-2015-16/\">Triumph Motorcycles Plans To Sell Over 2700 Units By 2015-16</a> appeared first on <a rel=\"nofollow\" href=\"http://www.someurl.com\">MotorBuzz - Car Bike News & Reviews</a>.</p>";
NSAttributedString *attrString = [[NSAttributedString alloc] initWithData:[html dataUsingEncoding:NSUTF8StringEncoding]
options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)}
documentAttributes:nil error:nil];
NSString *actualString= [attrString string];
但它将从字符串中删除所有html标签。
答案 1 :(得分:1)
幸运的是,由于你有这么简单的要求,我可以跳过整个don't use regex to parse html的事情并直接进入解决方案。
匹配这个:
<a( [^>]*?)?>|</a>
并将其替换为空,这将删除所有锚标签。