У меня есть куча файлов HTML. В этих файлах мне нужно исправить атрибут src
тэгов IMG.
Теги IMG обычно выглядят так:
<img alt="" src="./Suitbert_files/233px-Suitbertus.jpg" class="thumbimage" height="243" width="233" />`
где атрибуты НЕ в каком-либо определенном порядке.
Мне нужно удалить точку и косую черту в начале атрибута src
тегов IMG, чтобы они выглядели так:
<img alt="" src="Suitbert%20%E2%80%93%20Wikipedia_files/233px-Suitbertus.jpg" class="thumbimage" height="243" width="233" />
Пока у меня есть следующий класс:
import java.util.regex.*;
public class Replacer {
// this PATTERN should find all img tags with 0 or more attributes before the src-attribute
private static final String PATTERN = "<img\\.*\\ssrc=\"\\./";
private static final String REPLACEMENT = "<img\\.*\\ssrc=\"";
private static final Pattern COMPILED_PATTERN = Pattern.compile(PATTERN, Pattern.CASE_INSENSITIVE);
public static void findMatches(String html){
Matcher matcher = COMPILED_PATTERN.matcher(html);
// Check all occurance
System.out.println("------------------------");
System.out.println("Following Matches found:");
while (matcher.find()) {
System.out.print("Start index: " + matcher.start());
System.out.print(" End index: " + matcher.end() + " ");
System.out.println(matcher.group());
}
System.out.println("------------------------");
}
public static String replaceMatches(String html){
//Pattern replace = Pattern.compile("\\s+");
Matcher matcher = COMPILED_PATTERN.matcher(html);
html = matcher.replaceAll(REPLACEMENT);
return html;
}
}
Итак, мой метод findMatches(String html)
, кажется, правильно находит все теги IMG, где атрибуты src
начинаются с ./
.
Теперь мой метод replaceMatches(String html)
неправильно заменяет совпадения.
Я новичок в регулярных выражениях, но я предполагаю, что либо регулярное выражение REPLACEMENT является неправильным, либо используется метод replaceAll, либо оба варианта.
Как видите, замещающая строка содержит 2 части, которые идентичны во всех тегах IMG:
<img
и src="./
. Между этими двумя частями должно быть 0 или более атрибутов HTML из исходной строки.
Как мне сформулировать такую строку ЗАМЕНА?
Может кто-нибудь, пожалуйста, просветите меня?