【问题标题】:matching and replacing hyperlinks with java用java匹配和替换超链接
【发布时间】:2013-10-24 11:04:04
【问题描述】:

我正在使用缓冲阅读器浏览 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 的最佳方法是什么?

【问题讨论】:

标签: java regex html-parsing web-scraping


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-06-24
    • 1970-01-01
    • 2011-07-06
    • 2023-01-12
    • 2018-03-22
    • 2015-09-04
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多