В html doc мне нужно заменить полный путь к файлам только с именами файлов. Документы очень большие, поэтому я думаю, что я могу использовать регулярное выражение для получения практического решения. Я уже читал подобные вопросы и пробовал решения, но это просто не работало.Java regex pattern соответствует только последнему вхождению строки
Пример. Учитывая этот html-ввод.
<img src="app/javax.faces.resource/color_pan.png?ln=img/partidos" style="width:100%; height:30px;" class="centerImg"/>
<img src="/app/javax.faces.resource/pan.png?ln=img/partidos" class="centerImg"/>
мне нужно на следующие выходные:
<img src="color_pan.png" style="width:100%; height:30px"; class="centerImg"/>
<img src="pan.png" class="centerImg"/>
Я пытаюсь эти модели:
Pattern p = Pattern.compile("src=\"(?=.*src).*/color_pan.png[^\"]*\"");
Patter p1 = Pattern.compile("src=\"(?!.*src).*/pan.png[^\"]*\"");
Первый работает отлично для 1-го изображения, а второй является решением для второго (оба находятся на одном html-документе). Мне нужен общий шаблон, который работает для каждого изображения. Поэтому проблема заключается в том, чтобы найти только первый элемент «src», который появляется слева от имени файла. Другими словами, «src» должен быть последним, который появляется перед именем файла. Таким образом, я мог бы правильно заменить строки. Любая помощь приветствуется.
Я бы первым обрезать все после '?' Из вашей строки .. а затем получить все, что нужно до последнего '/' из оставшейся строки (другими словами, я бы не использовал регулярное выражение в этом случае :)) – ochi