我想创建一个java正则表达式,它选择从文件路径中的 file:到最后一个正斜杠(/)的所有内容。这样我就可以用不同的路径替换它。
<!DOCTYPE "file:C:/Documentum/XML%20Applications/joesdev/goodnews/book.dtd"/>
<myBook>cool book</myBook>
有没有人有任何想法?谢谢!
答案 0 :(得分:3)
你只想在结束报价之前去最后一个斜线,对吗?如果是这样的话:
file:[^"]+/
(字符串“file:”,然后是“,以/结尾)” 适当逃脱:
String regex = "file:[^\"]+/";
答案 1 :(得分:0)
试试这个:
"file:.*/[^/]*"/>
答案 2 :(得分:0)
您可以尝试自己处理,但更好的方案是选择引号之间的部分,并使用java.util.File将目录名与文件名分开。这样您就不必担心/ vs \或各种转义字符。
答案 3 :(得分: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));