正则表达式匹配字符串的一部分

时间:2018-04-13 13:51:37

标签: php regex

我有这种类型的字符串:

aabbcc-12-00001-g001-1024.png

ddeeffgg-1-50001-i001-500.jpg

ddeeffgg-1-50001-i001.jpg

我想提取没有文件大小的文件名,在文件扩展名之前始终是-xxx-xxxx

例如,对于三个字符串,我想匹配:

aabbcc-12-00001-g001.png

ddeeffgg-1-50001-i001.jpg

ddeeffgg-1-50001-i001.jpg

我的想法是首先调整大小,然后使用preg_replace和PHP,但不确定如何只匹配大小,尝试使用:

-\d{3,4}\.[a-z]{3}

但这匹配-550.png或-1024.jpg等。

1 个答案:

答案 0 :(得分:5)

您可以使用preg_replace替换:

$str = 'aabbcc-12-00001-g001-1024.png';
$result = preg_replace('/(-\d+)(.[A-Z]+)$/i', '$2', $str);
echo $result;