📅  最后修改于: 2023-12-03 15:18:31.566000             🧑  作者: Mango
在编写 PHP 程序时,经常需要匹配文件名的扩展名。使用正则表达式可以轻松地完成这项任务。本文将介绍在 PHP 中使用正则表达式匹配文件扩展名的方法和注意事项。
定义正则表达式
首先,我们需要定义一个正则表达式来匹配文件扩展名。文件扩展名通常是文件名的末尾,以点号(.)开头。因此,可以使用如下的正则表达式:
$pattern = '/\.([a-z]+)$/i';
解释:
\.
:表示匹配一个点号([a-z]+)
:表示匹配一个或多个小写字母$
:表示匹配字符串末尾/i
表示正则表达式不区分大小写。
使用 preg_match() 函数匹配文件扩展名
现在我们可以使用 preg_match()
函数来匹配文件扩展名。该函数需要三个参数:
preg_match($pattern, $filename, $matches);
$pattern
:是上面定义的正则表达式$filename
:需要匹配的文件名$matches
:存储匹配结果的数组例如,我们可以这样使用:
$filename = 'index.php';
preg_match($pattern, $filename, $matches);
这样就可以在 $matches
数组中得到匹配结果了。如果匹配成功,则 $matches[0]
存储整个匹配到的字符串,$matches[1]
存储第一个括号中匹配到的部分,以此类推。因此,如果要得到文件扩展名,则可以这样使用:
$extension = $matches[1];
完整代码片段
整个程序的完整代码如下:
$filename = 'index.php';
$pattern = '/\.([a-z]+)$/i';
preg_match($pattern, $filename, $matches);
$extension = $matches[1];
echo $extension; // 输出 php
[a-z]
改为 [a-zA-Z0-9]
。$
改为 \z
。pathinfo()
函数。