2015-09-03 27 views
0

我正在編寫一個Java應用程序,它將循環瀏覽PDF文件,查找並替換特定的URL並替換最後一位(稱爲oldreportid )它與一個新的(稱爲newreportid),都被作爲參數傳遞。如何在Java中使用pdf替換多個URL,最好使用PdfBox

例如:

此: http://www.test/test.php?T=MQ==&F=Nzq2相關

將成爲這樣的: http://www.test/test.php?T=MQ==&F=XXXX

我寫的代碼的大部分,但我堅持。

以下代碼循環瀏覽PDF文件,查找所有網址並用newreportid替換所有網址。這不是想要的結果,我只希望它來代替包含URL的oldreportid

​​

所以現在的問題是,如何使它所以只改變了包含oldreportid網址?

任何輸入表示讚賞。

謝謝!

回答

1

您可以使用正則表達式替換String中的參數。

String oldId = "1234Old"; 
String newId = "4321New"; 

String newString = oldURL.replaceAll("(&F=)" + Pattern.quote(oldId) + "(&|$)", "$1" + newId + "$2"); 

上述正則表達式匹配的& F = OLDID

Pattern.quote(的參數)逸出OLDID在它包含的正則表達式的控制字符的情況。

(& | $)模式確保參數在oldId後停止 - 它必須是和號(表示下一個參數的開頭)或URI字符串的結尾。

+0

很好的回答!作品,它很好解釋! 用工作代碼更新了OP。乾杯! – Teio