2009-05-04 114 views
0

我想創建一個java正則表達式,選擇從文件:到文件路徑中最後一個正斜槓(/)的所有內容。這是我可以用不同的路徑替換它。如何選擇使用正則表達式的文件路徑

<!DOCTYPE "file:C:/Documentum/XML%20Applications/joesdev/goodnews/book.dtd"/> 
<myBook>cool book</myBook> 

有沒有人有任何想法?謝謝!!

回答

3

你只想去到最後一個斜線結束引號,右過嗎?如果是這樣的:

file:[^"]+/

(字符串 「文件」,然後什麼,但」與結尾/)
正確轉義:

String regex = "file:[^\"]+/"; 
0

試試這個:

"file:.*/[^/]*"/>

+0

謝謝...是有可能不包括任何超出「真證/」 – joe 2009-05-04 20:18:30

+0

你需要使用()s到你想要的組,然後從所得到的匹配對象得到相應的組。 – 2009-05-04 20:20:44

0

你可以嘗試自己處理,但更好的方案是隻挑出引號之間的部分並使用java.util.File將目錄名與文件名分開。這樣,您不必擔心/ vs \或各種逃脫cha racters。

0
String newPath = "C:/Documentum/badnews"; 
String originalPath = "<!DOCTYPE \"file:C:/Documentum/XML%20Applications/joesdev/goodnews/book.dtd\"/>"; 
System.out.println(originalPath.replaceFirst("file:C:((/[/\\w%]+))", newPath));