Wyrażenie regularne pasujące do znacznika img z określonym atrybutem w HTML

0

Szukam wyrażenia regularnego, które powinno wykryć pełny <IMG ... random Parameter >blok w dużym dokumencie, podczas gdy opcja „. Dopasowuje nowy wiersz” jest włączona w funkcji Znajdź / Zamień.

Przykład:

Szukam <IMG ... >bloku, który zawiera Goal.gif. Obecnie używam

(<img.+Goal.gif".+>)

ale z tym wyrażeniem dopasowuje cały blok. Moim pomysłem jest sprawdzenie następującego tagu IMG jako negacji, ale nie wiem, jak zaprojektować takie oświadczenie.

<IMG id=NoPrint border=0 hspace=0 alt="" src="Directory\Tastatur.gif" align=baseline>
<IMG id=NoPrint border=0 hspace=0 alt="" src="Directory\Tastatur.gif" align=baseline>
<IMG id=NoPrint border=0 hspace=0 alt="" src="Directory\Goal.gif" align=baseline>

Jakiego wyrażenia regularnego mogę użyć, aby dopasować tylko tag img, który zawiera Goal.gif?

użytkownik2961606
źródło
2
Nie jestem pewien, dlaczego zaznaczyłeś, . matches newlineże jest to przeciwieństwo tego, czego chcesz, chyba że niektóre z twoich indywidualnych <img>tagów są podzielone na więcej niż jedną linię.
James P.
1
Tak, masz rację, ponieważ niektóre bloki są podzielone na wiele linii. Moim celem jest zastąpienie pełnych instrukcji img w wielu dokumentach HTML, gdy zawierają one określone obrazy.
user2961606,

Odpowiedzi:

2

Oto jeden, który przetestowałem na przykładowych danych w Notepad ++.

<img[^>]+goal\.gif.*?>

Że [^>]+działa podobnie .+, ale nie pasuje do żadnych wyrażeń tym >. To zapewni <imgi goal.gifbędzie zawierać ten sam tag.

gif.*?Sprawia, że mecz nie chciwi, więc będzie dotrzeć tylko do pierwszej instancji >następujący gif.

Przetestowałem to w przypadku, gdy między początkiem tagu a srcatrybutem jest nowa linia , i nadal działa.

Excellll
źródło
Dziękuję, to działa. Ale czy możesz mi powiedzieć, co robi „\” przed tagiem .gif? W każdym razie działa z tym i bez niego. Czy to tylko po to, aby zapobiec błędom spowodowanym kropką?
user2961606
1
Ukośnik wymyka się interpretacji wyrażenia regularnego okresu. W ten sposób dopasowuje tylko znak kropki, a nie symbol wieloznaczny. Bez niej ucieczki, wzór będzie pasował img tagów, które zawierają goalAgif, goal1gifitp
Excellll