嗨,我是reg表达式的新手,我正在尝试重命名复杂的文件名,如下所示:
3-M-COLORADOW-22017DB-LABEL
我想使用java reg表达式将此文件名重命名为:
3-M-COLORADOW-LABEL
但是,根据我目前对Java Reg表达式的了解,我只能做到这一点:
我尝试了很多组合但没有成功 . 我只需要帮助找到正确的java reg表达式组合来实现我的目标 . 基本上我正试图采取其中一个(破灭) . 任何帮助,将不胜感激 .
for(File file:filesInDir) {
//x++;
String name = file.getName();
String newName = name;
String sameName = name;
if (name.contains("LABEL")){
newName = sameName.replaceAll("(.*)-(.*)(-LABEL)", "$1$3") ;
System.out.println(newName); // prints prints to file
String newPath = absolutePathOne + "\\" + newName;
file.renameTo(new File(newPath));
}
}
2 回答
你可以将replaceAll用于这样的组:
产量
regex demo
由于您没有提供有关文件名结构的大量信息,我假设您要过滤掉后跟字母的数字 . 您可以使用以下正则表达式:
用
Matcher
.