2013-10-16 115 views
0

我正在使用缓冲读取器来浏览HTML文件&必须用新路径替换任何img文件的完整URL。与java匹配并替换超链接

例如,一个文件,我的工作有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?

+0

追加后最终结果应该如何? – hwnd

+0
+1

[小马,他来了..](http://stackoverflow.com/a/1732454/418556) –

回答

0

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