正则表达式忽略HTML注释

时间:2017-07-22 18:13:13

标签: html c++ regex

我需要使用c ++和regex过滤来自html页面的链接和图像,我想出了这句话:

<\s*(a.*?href|img.*?src)\s*=\s*\"(.*?)\".*?\s*> 

不幸的是,这也会在评论中找到它不应该的链接和图像。我尝试了一些消极的预测而没有成功。

1 个答案:

答案 0 :(得分:0)

没有理由一次完成所有事情。另外,你没有说出什么环境/编辑/编程语言,所以我选择了我最喜欢的C#。

  1. 删除所有评论:
  2. 使用

    var s1 = source.Replace("<!--.*?-->", "");
    
    1. 使用现有的正则表达式提取链接:
    2. 使用

      var s2 = Regex.Matches(s1, "<\\s*(a.*?href|img.*?src)\\s*=\\s*\"(.*?)\".*?\\s*> ");