2009-05-04 116 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));