ファイル名の一部を取得したい
ファイル名blabla_2009-001_name_surname-name_surname
取得したい: 2009-001, name_surname, name_surname
思いついたけどダメだな
preg_match("/(?:[0-9-]{8})_(?:[a-z_]+)-(?:[a-z_]+)/", $filename, $matches);
ポインタはありますか?
ありがとう!ブラジル
ファイル名の一部を取得したい
ファイル名blabla_2009-001_name_surname-name_surname
取得したい: 2009-001, name_surname, name_surname
思いついたけどダメだな
preg_match("/(?:[0-9-]{8})_(?:[a-z_]+)-(?:[a-z_]+)/", $filename, $matches);
ポインタはありますか?
ありがとう!ブラジル
ありがとうございました。
「nikc」が指摘したように、私は自分のソリューションを更新しました...私はいくつかの方向性が必要でした...
誰かが同様のソリューションを必要とする場合のコードは次のとおりです...
皆さん、ありがとうございました!
preg_match('/([0-9-]{8})_([^-]+)-([a-z_]+).([a-z]+)/', $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
preg_match("([0-9-]{8})_([^_]+)_([^_]+)-([^_]+)_([^_]+)$", $filename, $matches);