php匹配文件名末尾的数字?

来源:百度知道 编辑:UC知道 时间:2024/06/20 17:50:21
如文件名为:
google-golden-spider-666888.htm
但也可能文件名开头和/或中间某处也含有数字,如
888-golden-spider-666888.htm
google-888-golden-spider-666888.htm
888-golden-888-spider-666888.htm

但我只想取得 666888 这个值,请问如何写?请给出完整代码,而非仅正则
谢谢两位的帮助!两人都对!怎样才能都给分呢?还有一事不明,$reg[1]和$a[0]分别是什么意思?
1是数组中第一个数值?0是全部数值?

如果文件都是*.htm,那么可以这样:
$s='google-888-golden-spider-666888.htm';
if (preg_match('/(\d+)\.htm$/', $s, $reg)) echo $reg[1];

否则,可以这样:
$s='google-888-golden-spider-666888.htm';
if (preg_match('/(\d+)\.\w+$/', $s, $reg)) echo $reg[1];

如果你的分隔符都是“-”的话,并且知道靶标串就在最后的话,本人感觉用explode()函数效率要比正则高4倍左右。
$a=explode(".","google-golden-spider-666888.htm");//获取文件主体名称
$b=explode("-",$a[0]);//分割
$c=count($b);//获取分割数量
$d=$b[$c-1];//就是你想要的那串数字