Dosya adı regex çıkarma

3 Cevap php

Ben dosya bölümlerini almak istiyorum

filename blabla_2009-001_name_surname-name_surname

2009-001, name_surname, name_surname: ben almak isterim

Ben bu ile geldim, ama bu hiç iyi

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

Herhangi bir işaretçiler?

Thanks! BR

3 Cevap

Varsayarsak dosya biçimi değişmez:

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

Uzantısını ele Güncelleme sürümü:

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

dosya adı her zaman bu yapı ise

$name = "blabla_2009-001_name_surname-name_surname";
$s = explode("_",$name,3);
$t = explode("-",end($s));
print "$s[1] $t[0] $t[1]\n";

çıktı

$ php test.php
2009-001 name_surname name_surname

Hepinize teşekkür,

Ben sadece bazı yön gerekli ... işaret "nikc" olarak benim kendi çözüm güncelledik ...

Herkes benzer bir çözüm gerekir eğer burada kod ...

Hepinize teşekkür ederim!

preg_match('/([0-9-]{8})_([^-]+)-([a-z_]+).([a-z]+)/', $filename, $matches);