2012-10-23 28 views
3

替換文件的路徑,我不太清楚有任何正則表達式替換thoese事情:Java的正則表達式來基於OS

這是通過Linux機器保存在XML文件中讀取一個字符串值

<pcs:message schema="models/HL7_2.5.model"/> 

,這是一個保存在Windows機器

<pcs:message schema="model\HL7_2.5.model"/> 

這就是爲什麼在文件中獲取在Eclipse中的錯誤,而在Linux的出口和進口的Windows或反之亦然。

是否有任何正則表達式來查找和替換字符串中的值(斜槓和反斜槓)? (不是XML解析)基於工作操作系統?

在此先感謝

回答

1
+0

你的意思'file.separator'(/或\,通常情況下)? 'path.separator'是類路徑分隔符,在Linux上是':',在Windows上是';'。 – DNA

+0

DNA,當然,是的,謝謝你,我編輯了答案:) – lbalazscs

1

這應該照顧固定的斜線:

String str = xml.replaceAll("\\\\|/", System.getProperty("file.separator")); 
+0

謝謝你的回答!但是這會導致一個異常:java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍:1 – user1769640

+0

這不應該發生,我在發佈之前已經對它進行了實際測試。看到這裏的代碼現場演示:http://ideone.com/TlzlRa – anubhava

4

str = str.replaceAll("\\\\|/", "\\"+System.getProperty("file.separator"))