2017-08-03 55 views
-1

在大型ASP.NET項目中使用Visual Studio我需要查找具有「info」類的HTML類的所有圖像。搜索特定HTML標記中的屬性值

  1. 直接在頁面,<img alt="..." title="..." class="info" />
  2. 作爲ASP圖像,<asp:Image runat="server" ImageUrl="..." CssClass="info" />
  3. 作爲字符串連接,Dim s = "<img .... class=""info"" />"(通知雙引號)
:這些圖像然而可以使用以下方法來施加

其他障礙是圖像可能有多個類,例如<img ... class="foo info bar" />,所以搜索class="info"不起作用。另外,其他HTML元素也使用這個類,但應該被忽略,例如, <p class="info">Foo</p>

我需要用於搜索,可提供以下的邏輯規則表達:

  1. 必須包含imgasp:Image(不區分大小寫)
  2. 必須包含classCssClass(不區分大小寫)
  3. 必須項包含info(區分大小寫)
+0

@Downvoter - 有關你爲什麼投票結束的任何建議?我試圖找到一個字符串包含三個具體的價值觀,我不明白這是如何太廣泛... – EvilDr

+0

在猜測,down/closevote是因爲有某些類別的問題,堆棧溢出接收免費工作請求在數量相當高。它們是:正則表達式,mod_rewrite規則,SQL查詢和XPath表達式。在任何這些情況下,重要的是要展示你所嘗試的東西,將你的問題與根本沒有做出任何嘗試的人區分開來。 – halfer

+0

由於您的目標文本是HTML,您可以使用HTML解析器嗎?無論如何,正則表達式對於這份工作來說都是錯誤的工具。 – halfer

回答

0

事實證明問題是Vis ual 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這是在正確方向上的領先優勢。