我的文字看起来像这样:
$file = "file name-1-03-08-2014_15:56:06.doc";
出于显示目的,我想只显示"文件名.doc"。
所以在没有任何东西的情况下更换第一个破折号之后我相信我应该使用preg_replace但不确定模式是什么。 preg_replace是最好的功能吗?
我可以更改文件名格式,以便在必要时更轻松。
答案 0 :(得分:2)
你绝对可以用正则表达式做到这一点。
preg_replace('/-.*(\..*)$/', '$1', $file);
此正则表达式/-.*/
将匹配-
及其后的所有字符.*
。文件扩展名在括号语句(\..*)
中捕获,$
要求扩展名在字符串末尾匹配。第二个参数用匹配扩展名替换匹配的字符串。
答案 1 :(得分:0)
$file = "file name-1-03-08-2014_15:56:06.doc";
$clean=substr_replace ($file ,'' , strpos($file,'-'),strrpos($file,'.')- strpos($file,'-') );
echo $clean;
没有正则表达式解决方案,以防万一...