0

我正在使用缓冲阅读器来浏览 HTML 文件,并且必须用新路径替换任何 img 文件的完整 URL。

例如,我正在处理的一个文件有 3 个要找到的新路径,并且我已将它们声明为最终变量:

public static final String x_TAG="https://newsite.com/media/x.jpg";
public static final String y_TAG="https://newsite.com/media/y.jpg";
public static final String z_TAG="https://newsite.com/media/z.jpg";

现在我可以通过以下方式阅读文件中的文件和模式匹配:

Pattern imgPattern = Pattern.compile("(<\\s*img\\s*alt\\s*=\\s*\").*?(\"\\s*>)");
Matcher imgMatcher = imgPattern.matcher(replaceAllTags);

while(imgMatcher.find()) {
    System.err.println("match at "+imgMatcher.group());
}

打印回来:

match at <img alt="/oldSite.com/Images?action=AttachFile&amp;do=get&amp;target=Images/x.jpg" src="cc_files/Images_003.jpg" title="/oldSite.com/Images?action=AttachFile&amp;do=get&amp;target=Images/x.jpg" width="600">


match at <img alt="/oldSite.com/Images?action=AttachFile&amp;do=get&amp;target=Images/y.jpg" src="cc_files/Images_004.jpg" title="/oldSite.com/Images?action=AttachFile&amp;do=get&amp;target=Images/y.jpg" width="600">


match at <img alt="/oldSite.com/Images?action=AttachFile&amp;do=get&amp;target=Images/z.jpg" src="cc_files/Images.jpg" title="/oldSite.com/Images?action=AttachFile&amp;do=get&amp;target=Images/z.jpg" width="600">**

那么为每张图片查找和附加新 URL 的最佳方法是什么?

4

1 回答 1

0

还有一个人试图将屏幕抓取与正则表达式匹配。:-) 我并不是说这是不可能的,但另一种方法是使用 html 解析器,如 jsoup https://stackoverflow.com/a/6042593/81520或其他此类库来解析您读入的 HTML。然后对于每个 IMG标记,编辑 SRC 属性。

于 2013-10-16T11:08:25.317 回答