我在MYSQL数据库中有以下图像,我想搜索并替换模式后面的所有出现(包括星号*在内的所有内容都必须保留,但文件扩展名需要保留 - *之后的字符数变化,对于扩展名也一样。) 感谢您的帮助!
这就是我所拥有的:
mo051316hires-5 * 100xx2304-2304-576-0.jpg
brandicourt-光高分辨率-1 * 100xx3264-3264-816-0.gif
这就是我想要的:
mo051316hires-5.JPG
brandicourt-光高分辨率-1.gif
答案 0 :(得分:1)
像这样使用preg_replace()
:
$newFileName = preg_replace('/\*[^.]+/', '', $oldFileName);
这会查找文字*
(\*
)和一个或多个非句点字符([^.]+
),并用空字符串替换它们。
答案 1 :(得分:1)
使用MySQL修复现有数据:
试试这个:
SELECT CONCAT(
SUBSTRING_INDEX(col, '*', 1),
'.',
SUBSTRING_INDEX(col, '.', -1)
FROM ...
如果看起来不错,请将其放入
UPDATE ...
SET col = CONCAT ...