您将如何编写正则表达式来查找以下文件的文件扩展名,记住我要查找的是字符串的“.pdf”或“.xls”部分?

  • REPORTPDF.20130810.pdf.pgp
  • REPORTXLS.20130810.xls.pgp

  • 编辑:
    我想最终得到的文件名如下:
  • REPORT20130810.PDF
  • REPORT20130810.XLS

  • 我在 Windows 平台上。我在 http://regexpal.com/ 上玩过这个,但到目前为止我只能弄清楚如何匹配日期:
    ([0-9]{4}[0-9]{2}[0-9]{2})
    

    最佳答案

    使用 sed:

    sed 's/^\(.*[^.]*\)\.[^.]*$/\1/' <<< "REPORTPDF.20130810.pdf.pgp"
    REPORTPDF.20130810.pdf
    

    使用 grep -P(PCRE 正则表达式):
    grep -oP '^.+[^.]+(?=\.[^.]+$)' <<< "REPORTPDF.20130810.pdf.pgp"
    REPORTPDF.20130810.pdf
    

    关于在具有多个句点的文件中查找文件扩展名的正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18517775/

    10-11 23:52