删除字符串的尾随字符

时间:2019-08-05 19:44:54

标签: java

如果有任何意义,我需要修剪文件名以仅获取含义中的名称。例如,我有这个文件: -r,我只想提取它的名称:myFileName_XYZ_2901_20.dat。 我现在有这个:

myFileName_XYZ

但是当我调试它时,它会给我: String word = myFileName.replaceAll("([^_.*\0-9 ])", "");

我该如何解决? 谢谢

3 个答案:

答案 0 :(得分:1)

您不需要为此使用正则表达式;只需将_中第二个String字符之前的内容全部取出:

String word = myFileName.substring(0, 
    myFileName.indexOf('_', myFileName.indexOf('_') + 1));

输出:

myFileName_XYZ

请注意,这假设myFileNameXYZ都不包含任何_个字符。

答案 1 :(得分:1)

模式最终可能是您需要的,但是如果您打算删除的模式最终成为您要保留的文件名部分的一部分,那么您将遇到意外情况结果。

如果结尾始终是相同的模式– _XXXX_YY.dat –您可以从结尾处删除固定长度的12个字符。这将打印“ myFileName_XYZ”:

String s = "myFileName_XYZ_2901_20.dat";
int length = s.length() - 12;
System.out.println(s.substring(0, length));

答案 2 :(得分:1)

这将删除带有数字和下划线但不包括扩展名的最后一部分

String word = myFileName.replaceAll("(_\\d+_\\d+)", "");

结果

  

myFileName_XYZ.dat