douyue1481 2010-01-20 14:11
浏览 207
已采纳

文件名正则表达式提取

I'd like to get parts of the filename

filenameblabla_2009-001_name_surname-name_surname

I'd like to get: 2009-001, name_surname, name_surname

I've come up with this, but it's no good

preg_match("/(?:[0-9-]{8})_(?:[a-z_]+)-(?:[a-z_]+)/", $filename, $matches);

Any pointers?

Thanks! BR

  • 写回答

4条回答

  • dongqian2021 2010-01-20 14:20
    关注

    Assuming filename format doesn't change:

    preg_match('#(\d{4}-\d{3})_(.*?)-(.*?)$#', $filename, $match);
    

    Updated version to handle extension:

    preg_match('#(\d{4}-\d{3})_(.*?)-(.*?)\.(.*?)$#', $filename, $match);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题