Как выбрать путь к файлу с помощью регулярных выражений - PullRequest
0 голосов
/ 05 мая 2009

Я хотел бы создать регулярное выражение Java, которое выбирает все от file: до последней косой черты (/) в пути к файлу. Это так, чтобы я мог заменить его другим путем.

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

У кого-нибудь есть идеи? Спасибо !!

Ответы [ 4 ]

3 голосов
/ 05 мая 2009

Вы просто хотите перейти к последнему слешу перед конечной кавычкой, верно? Если так:

file:[^"]+/

(строка "file:", затем что угодно, кроме ", оканчивающаяся на /)
Правильно избежал:

String regex = "file:[^\"]+/";
0 голосов
/ 05 мая 2009
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));
0 голосов
/ 05 мая 2009

Вы можете попытаться обработать это самостоятельно, но лучшей схемой было бы просто выделить части между кавычками и использовать java.util.File, чтобы отделить имя каталога от имени файла. Таким образом, вам не нужно беспокоиться о / vs \ или различных escape-символах.

0 голосов
/ 05 мая 2009

Попробуйте это:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...