我想創建一個java正則表達式,選擇從文件:到文件路徑中最後一個正斜槓(/)的所有內容。這是我可以用不同的路徑替換它。如何選擇使用正則表達式的文件路徑
<!DOCTYPE "file:C:/Documentum/XML%20Applications/joesdev/goodnews/book.dtd"/>
<myBook>cool book</myBook>
有沒有人有任何想法?謝謝!!
我想創建一個java正則表達式,選擇從文件:到文件路徑中最後一個正斜槓(/)的所有內容。這是我可以用不同的路徑替換它。如何選擇使用正則表達式的文件路徑
<!DOCTYPE "file:C:/Documentum/XML%20Applications/joesdev/goodnews/book.dtd"/>
<myBook>cool book</myBook>
有沒有人有任何想法?謝謝!!
你只想去到最後一個斜線結束引號,右過嗎?如果是這樣的:
file:[^"]+/
(字符串 「文件」,然後什麼,但」與結尾/)
正確轉義:
String regex = "file:[^\"]+/";
試試這個:
"file:.*/[^/]*"/>
你可以嘗試自己處理,但更好的方案是隻挑出引號之間的部分並使用java.util.File將目錄名與文件名分開。這樣,您不必擔心/ vs \或各種逃脫cha racters。
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));
謝謝...是有可能不包括任何超出「真證/」 – joe 2009-05-04 20:18:30
你需要使用()s到你想要的組,然後從所得到的匹配對象得到相應的組。 – 2009-05-04 20:20:44