gpt4 book ai didi

Java replaceAll 替换特殊字符

转载 作者:行者123 更新时间:2023-11-30 07:11:23 26 4
gpt4 key购买 nike

我正在寻找 java 中的片段来替换

 "..", "/" or "\" or ":" - FileSeperator characters with
""

在从 UI 传递的文件名属性中。这应该是独立于操作系统的。我也不想去掉“单点”,只有“双点”

目前我写了一个片段

private static void filter(){
// should not remove the Single Dot
String fileName = "/user/../142552/ReportFile.txt"
fileName = fileName.replaceAll("[/|\\|..|:|]","");
System.out.println("fileName " + fileName);
}

输出

fileName user142552ReportFiletxt

预期输出

fileName user142552ReportFile.txt

最佳答案

fileName.replaceAll("[/|\\|..|:|]","")

该正则表达式值得怀疑 - 它将删除所有出现的字符 /|:,我怀疑这是你的想法。尝试更像这样的东西:

fileName.replaceAll("/|\\\\|:|\\.\\.","")

反斜杠在 Java 正则表达式中是一场噩梦,因为你必须在字符串文字中将它们加倍,然后在正则表达式中再次加倍(所以你需要 \\\\ 来匹配单个反斜杠).此外,点本身在正则表达式(匹配 任何 单个字符)中是特殊的,因此要匹配文字点,您需要正则表达式 \.,这意味着 Java 字符串文字 \\.

关于Java replaceAll 替换特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21312426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com