用于拆分String并获取最后一部分的正则表达式

时间:2017-06-29 11:39:24

标签: java regex string split

我想拆分一个文件名为String的文件名(例如:DIS_LU0786738343_20170608.pdf,KID_AMEV_20170608.pdf,Evolution-DIS_20170512.csv,Offres-invest_20170608.csv,OST_20170608.csv)以获取最后一部分。

例如,对于字符串DIS_LU0786738343_20170608.pdf,我只想获得20170608,它将在Date对象上进行转换。

我一直在谷歌搜索,我找到了使用Regular Expressions的解决方案:

String regex = "some regex expression";
String fileName = "DIS_LU0786738343_20170608.pdf";
System.out.println(Arrays.toString(fileName.split(regex)));

这将返回如下数组:[DIS_LU0786738343_, 20170608]

所以任何人都可以帮我制作正则表达式吗?

2 个答案:

答案 0 :(得分:1)

    String fileName = "DIS_LU0786738343_20170608.pdf";
    int startIdx = fileName.lastIndexOf("_");
    int endIdx = fileName.lastIndexOf(".");
    String finalStr=fileName;
    if (startIdx > 0 && endIdx > 0)
            finalStr = fileName.substring(startIdx + 1, endIdx);
    System.out.println(finalStr);

我认为这应该适合你。

答案 1 :(得分:0)

我放弃了RegEx的事情,找到了另一个解决方案,我想与将来需要它的人分享:

private LocalDate getDateFromPriipsDoc(File file) {
   DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
   String fileName = FilenameUtils.getBaseName(file.toString());
   String dateInString = fileName.substring(fileName.lastIndexOf("_") + 1);
   return LocalDate.parse(dateInString, formatter);
}

不要犹豫与RegEx分享另一个解决方案;)