#html #regex #string #alt #calibre
#HTML #регулярное выражение #строка #alt #калибр
Вопрос:
Я пытаюсь создать регулярное выражение, чтобы заменить атрибут alt внутри тега изображения для всех изображений, которые будут содержать текст и число, начиная с 1 и считая все изображения — (которое всегда будет 3-значным числом)
У меня есть это
<img class="class1" src="image1.png" alt="sel5.tif"/>
<img class="class2" src="image2.png" alt="7.tif"/>
<img class="class3" src="image3.png" alt="whatever.tif"/>
И я хотел бы, чтобы это было как результат
<img class="class1" src="image1.png" alt="image_1"/>
<img class="class2" src="image2.png" alt="image_2"/>
<img class="class3" src="image3.png" alt="image_3"/>
Я написал это alt=(['"].*?[^"]*")
, которое, похоже, работает в поиске alt="anything"
, но у меня возникли проблемы с заменой на alt="image_1"
etc.
Любая помощь была бы очень признательна
Комментарии:
1. Какую языковую среду вы используете? JavaScript?
2. Я использую Calibre (редактор для электронных книг), поэтому мне просто нужны регулярные выражения, чтобы использовать их в опции «найти и заменить»
3. В регулярных выражениях нет возможности нумерации, поэтому вам, вероятно, следует подумать об изменении источника ваших данных. Я добавил
calibre
тег к вашему вопросу, это довольно важная информация.
Ответ №1:
Вы можете использовать это регулярное выражение:
(<.*src=)(['"](.*?)(d )([^"]*)").*/>
с помощью этой замены:
$1$2 alt="$3_$4$5" />
Посмотрите это онлайн.