我想创建一个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