Мне нужно регулярное выражение, которое вернет тег изображения, который не имеет атрибута alt, который имеет что-либо между кавычками. Например, я бы хотел, чтобы он возвращал тег img, который имеет alt = "" или который не имеет alt, но не тот, который имеет alt = "y".Регулярное выражение для поиска <img /> тег, который не имеет alt = ". #"
Теги изображений могут иметь разрывы строк в них, и в строке может быть более одного тега изображения.
В настоящее время, то, что у меня есть:
<[email protected](~[\r\n]|[\r\n])*[email protected](~(alt=".#"))*[email protected](~[\r\n]|[\r\n])*[email protected]/>
и я тестирую его на это:
<img alt="" />
<img src="xyz.jpg"
alt="y" />
<img xxxx ABC />
<img xxxxxx ABC />
<img src="xyz.jpg" alt="y" />
Но мое регулярное выражение возвращает каждый тег изображения, в том числе 2-й и 5, которые я не хочу возвращать.
Я работаю в Microsoft Expression Web.
Регулярные выражения не Парсеры. Они плохо подходят для работы с HTML. –
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – Joe
Это один из сценариев, когда люди, срывающие вас, не могут делать это с помощью регулярного выражения являются правильными. регулярные выражения не могут иметь дело с вложенными тегами, поэтому такие вещи, как «', не являются доступными с регулярным выражением. Regex будет работать ТОЛЬКО, если вы можете гарантировать, что теги img никогда не будут содержать другие теги img. –