【问题标题】:How can I remove all <a> tags from an HTML block, and leave the rest?如何从 HTML 块中删除所有 <a> 标签,并保留其余部分?
【发布时间】:2011-10-18 05:24:49
【问题描述】:

我有一堆 html,我准备在 UIWebView 中显示我正在开发的 iPad 应用程序。 HTML 有许多我可以使用的不同标签,但是有一堆带有不相关链接的 a-tags 我需要删除。我将把这段文本放入一个 sqlite 数据库中。

从我的 HTML 文本中获取所有 a 标记的最佳方法是什么?我认为正则表达式是最好的方法,但我只是不太了解正则表达式。网上有个博客提到,这个正则表达式是去掉所有标签的方法:

 <(.|\n)*?>

那么我需要做什么才能将其调整为特定于 a-tag 的?还是我应该采取不同的方法?

谢谢!

【问题讨论】:

    标签: iphone regex parsing uiwebview


    【解决方案1】:

    您需要的正则表达式是:

    <a.*?>|</a>
    

    这匹配 &lt;a{something}&gt;&lt;/a&gt; - 您需要删除的标签。不过,我不了解 ObjectiveC 正则表达式函数,请参阅 Ron 的帖子。

    【讨论】:

      【解决方案2】:

      试试这个代码:

      NSString *str = @"Turn left onto <a>Sri Krishna Nagar Rd</a><div class=\"google_note\">Pass by <b landmarkid=\"0x39ed58475c24020f:0x170a2130a5880d5a\" class=\"dir-landmark\">California Academy of Visual Effects</b> <div class=\"dirseg-sub\">(on the left)</div>\n</div>";
      str = [str stringByReplacingOccurrencesOfString:@"\\r\\n" withString:@""];
      NSRange r;
      while ((r = [str rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
          str = [str stringByReplacingCharactersInRange:r withString:@""];
      NSLog(@"%@",str);
      

      【讨论】:

      • 非常感谢您的帮助!我意识到 SO 编辑了我的帖子以隐藏 a-tags,所以它没有任何意义。我需要的只是 a-tags,看起来你的代码去掉了所有的标签。可以调整任何东西来删除所有的a标签吗?再次感谢您的帮助!
      猜你喜欢
      • 1970-01-01
      • 2019-03-30
      • 2014-08-09
      • 2011-05-23
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 2021-10-10
      相关资源
      最近更新 更多