Регулярний вираз для відповідності тегу img з певним атрибутом у HTML


0

Я шукаю регулярний вираз, який повинен виявити повний <IMG ... random Parameter > блокувати у великому документі, тоді як у функції Знайти / Замінити активовано параметр ".

Приклад:

Я шукаю <IMG ... > блок, який містить Goal.gif. Зараз я використовую

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

але з цим виразом він відповідає усьому блоку. Моя ідея полягає в тому, щоб перевірити наступний IMG-тег як заперечення, але я не знаю, як розробити таку заяву.

<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>

Які regex я можу використовувати, щоб відповідати тільки тегу img, яка містить Goal.gif?


2
Я не впевнений, чому ви відзначили . matches newline це протилежне тому, що ви хочете, якщо тільки хтось із ваших індивідуумів <img> теги розділені на більш ніж один рядок.
James P

1
Так, ви маєте рацію, тому що деякі блоки розділені на багато рядків. Моя ціль - замінити повну версію img у багатьох документах HTML, якщо вони містять певні зображення.
user2961606

Відповіді:


1

Ось те, що я перевірив на вашому зразку даних у Notepad ++.

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

The [^>]+ працює як .+ але не відповідає жодним виразам, включаючи >. Це забезпечить <img і goal.gif знаходяться в межах одного тегу.

The gif.*? робить збіг не жадним, тому він досягає лише першої інстанції > наступні gif.

Я перевірив це на випадку, коли є новий рядок між тегом початку і src атрибут, і він ще працював.


Дякую, це працює. Але чи можете ви сказати мені, що робить "" перед тегом .gif? Працює з нею і без неї. Чи це просто для запобігання помилок, викликаних точкою?
user2961606

Коса чорна риса збігається з інтерпретацією регулярного виразу періоду. Таким чином, він відповідає лише символу періоду, а не шаблону. Без уникнення його, шаблон буде відповідати тегам IMG, які включають goalAgif, goal1gifі т.д.
Excellll
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.