PHP RegEx提取文件名

时间:2012-01-27 13:16:36

标签: php regex

我需要你帮助PHP中的RegEx

我有类似的东西: vacation.jpg,我正在寻找一个只提取假期的RegEx。的文件名。 有人能帮助我吗?

5 个答案:

答案 0 :(得分:6)

不要使用正则表达式 - 使用basename

$fileName = basename($fullname, ".jpg");

答案 1 :(得分:4)

您可以使用pathinfo代替正则表达式。

$file = 'vacation.jpg';
$path_parts = pathinfo($file);
$filename = $path_parts['filename'];

echo $filename;

答案 2 :(得分:2)

如果你真的需要正则表达式,那么这个就可以了:

$success = preg_match('~([\w\d-_]+)\.[\w\d]{1,4}~i', $original_string, $matches);

在匹配内容中,您将拥有文件名的第一部分。

答案 3 :(得分:1)

已经提供了更好的答案,但这是另一种选择!

$fileName = "myfile.jpg";
$name = str_replace(substr($fileName, strpos($fileName,".")), "", $fileName);

答案 4 :(得分:0)

你不需要正则表达式。

方法1:

$str = 'vacation.jpg';
$parts = explode('.', basename($str));
if (count($parts) > 1) array_pop($parts);
$filename = implode('.', $parts);

方法2(更好,使用pathinfo()):

$str = 'vacation.jpg';
$filename = pathinfo($str, PATHINFO_FILENAME);