簡體   English   中英

替換所有出現的。 歸一化

[英]replace all occurrences of . for normalization

說我有字符串“ foo /./ bar”,則應將其標准化為“ foo / bar”。 我嘗試使用以下正則表達式執行此操作:

String result = filePath.replaceAll("\\./", "");

但這對我沒有用..任何想法嗎?

在Java 7中, Path類中有內置方法。 (如果您沒有使用Java 7,那么抱歉。)

無論哪種方式,正則表達式都可能不是實現路徑規范化的最佳方法。 進行拆分然后將path元素添加到堆棧要容易得多,當元素為時不添加任何內容. 並彈出,如果它是..

我猜您想要的是標准化Windows文件路徑,而不僅僅是刪除句點(在您的示例中,您將必須刪除句點和以下斜杠)。 那么,為什么不使用java.nio.Path呢?

Path path = Paths.get(unnormalizedPath);
Path normalized = path.normalize();

或者使用Java7之前的版本,您可以

new File(unnormalizedPath).getCanonicalPath();

嘗試這個

System.out.println("./a/./b/c/."
                    .replaceAll("/[.]/|^[.]/","/")
                    .replaceAll("/[.]",""));

輸出量

/a/b/c

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM