我想获取部分文件名
文件名blabla_2009-001_name_surname-name_surname
我想得到:2009-001,name_surname,name_surname
我想出了这个,但这并不好
preg_match("/(?:[0-9-]{8})_(?:[a-z_]+)-(?:[a-z_]+)/", $filename, $matches);
任何指针?
谢谢!BR
我想获取部分文件名
文件名blabla_2009-001_name_surname-name_surname
我想得到:2009-001,name_surname,name_surname
我想出了这个,但这并不好
preg_match("/(?:[0-9-]{8})_(?:[a-z_]+)-(?:[a-z_]+)/", $filename, $matches);
任何指针?
谢谢!BR
preg_match("([0-9-]{8})_([^_]+)_([^_]+)-([^_]+)_([^_]+)$", $filename, $matches);
假设文件名格式不变:
preg_match('#(\d{4}-\d{3})_(.*?)-(.*?)$#', $filename, $match);
更新版本以处理扩展:
preg_match('#(\d{4}-\d{3})_(.*?)-(.*?)\.(.*?)$#', $filename, $match);
如果您的文件名始终是该结构
$name = "blabla_2009-001_name_surname-name_surname";
$s = explode("_",$name,3);
$t = explode("-",end($s));
print "$s[1] $t[0] $t[1]\n";
输出
$ php test.php
2009-001 name_surname name_surname
谢谢大家,
我已经更新了自己的解决方案正如“nikc”指出的那样......我只需要一些方向......
如果有人需要类似的解决方案,这是代码...
谢谢你们!
preg_match('/([0-9-]{8})_([^-]+)-([a-z_]+).([a-z]+)/', $filename, $matches);