Java中如何替换字符串格式路径的首个文件夹名称
你写的正则存在几个问题:
- 正则首尾的
/是部分语言正则字面量的写法,Java的replaceAll、replaceFirst方法接收的正则字符串不需要加这对分隔符 ^锚点写在了/之后,无法匹配字符串开头位置,导致整个规则匹配不到任何内容- 贪婪匹配规则
+会匹配到最后一个斜杠为止,不符合只取第一段路径的需求
正确实现方案(基于String正则实现)
使用replaceFirst方法适配单一场景性能更优,写法如下:
String myString = "/folder1/folder2/file.txt"; String newString = myString.replaceFirst("^/[^/]+", "/newFolder"); // 输出结果:/newFolder/folder2/file.txt
正则规则说明:
^/匹配字符串开头的第一个斜杠[^/]+匹配所有非斜杠的字符,也就是第一个斜杠后的首个路径段
如果你的路径可能存在没有前导斜杠的情况,可以调整正则为^/?[^/]+,适配前导斜杠可选的场景。
内容的提问来源于stack exchange,提问作者rmf
相关产品推荐
相关产品推荐

