Как сопоставить родительские каталоги Linux с Java Regex? - PullRequest
0 голосов
/ 28 января 2019

Путь Linux - ../../test/test/mydirectory/.....

Я пытался удалить все ../ с помощью этого регулярного выражения

[s{/././///}]

Но при этом удаляются все специальные символы

Я только хочу удалить ../../../../../ и оставить реальный путь

String result = path.replaceAll("[s{/././///}]",""); 

Я ожидаю, что регулярное выражение идентифицирует все возможные ../../../../ пустые родительские каталоги и оставит только реальный каталог, где находится реальный путьимя начинается

начинается только там, где начинаются буквы

1 Ответ

0 голосов
/ 28 января 2019

Вы можете использовать

s.replaceFirst("^(?:\\.{2}/)+", "")

Шаблон соответствует

  • ^ - начало строки
  • (?:\\.{2}/)+ - один или несколько повторений:
    • \.{2} - две точки
    • / - косая черта.

.replaceFirst найдет первое вхождениешаблон и заменит его пустой строкой.

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