在特定HTML标记内搜索属性值

时间:2017-08-03 08:19:31

标签: regex visual-studio

使用Visual Studio,在一个大型ASP.NET项目中,我需要找到所有HTML类为“info”的图像。但是,可以使用以下方法应用这些图像:

  1. 直接在页面中<img alt="..." title="..." class="info" />
  2. 作为ASP图片,<asp:Image runat="server" ImageUrl="..." CssClass="info" />
  3. 作为字符串连接,Dim s = "<img .... class=""info"" />"(注意双引号)
  4. 其他障碍是图像可能有多个类别,例如<img ... class="foo info bar" />,因此搜索class="info"不起作用。此外,其他HTML元素也使用此类,但应忽略,例如<p class="info">Foo</p>

    我需要一个用于搜索的正则表达式,它提供以下逻辑:

    1. 必须包含imgasp:Image(不区分大小写)
    2. 必须包含classCssClass(不区分大小写)
    3. 必须包含info(区分大小写)

1 个答案:

答案 0 :(得分:0)

事实证明问题是Visual Studio不接受逐字粘贴的正则表达式。

我在网上做过的测试(see working example

/(img|asp:Image)(?=.*class\b)(?=.*\binfo\b).*$/igm

但是,这在Visual Studio中找不到任何内容。我没有意识到我需要删除开始和结束字符。 Visual Studio需要此修订版,它可以正常工作:

(img|asp:Image)(?=.*class\b)(?=.*\binfo\b).*$

归功于this answer,这是朝着正确方向发展的领先优势。