【发布时间】:2012-02-20 11:18:01
【问题描述】:
我需要你在 PHP 中使用 RegEx 的帮助
我有类似的东西: vacation.jpg 我正在寻找一个正则表达式,它只提取文件名的“假期”。 有人可以帮我吗?
【问题讨论】:
-
您不需要正则表达式 - PHP 具有内置功能,使您无需正则表达式即可执行此操作。
我需要你在 PHP 中使用 RegEx 的帮助
我有类似的东西: vacation.jpg 我正在寻找一个正则表达式,它只提取文件名的“假期”。 有人可以帮我吗?
【问题讨论】:
不要为此使用正则表达式 - 使用 basename:
$fileName = basename($fullname, ".jpg");
【讨论】:
您可以使用pathinfo 代替正则表达式。
$file = 'vacation.jpg';
$path_parts = pathinfo($file);
$filename = $path_parts['filename'];
echo $filename;
【讨论】:
如果你真的需要正则表达式,这个可以做到:
$success = preg_match('~([\w\d-_]+)\.[\w\d]{1,4}~i', $original_string, $matches);
在匹配项中,您将拥有文件名的第一部分。
【讨论】:
已经提供了更好的答案,但这里有另一种选择!
$fileName = "myfile.jpg";
$name = str_replace(substr($fileName, strpos($fileName,".")), "", $fileName);
【讨论】:
你不需要正则表达式。
方法一:
$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);
【讨论】: