регулярное выражение заменяет строку, которая включает в себя добавочное значение

#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" />
  

Посмотрите это онлайн.