gpt4 book ai didi

php - 获取字符串中的 240x670 并删除?

转载 作者:可可西里 更新时间:2023-11-01 00:57:03 24 4
gpt4 key购买 nike

我有一个字符串,我想删除它的一部分:

string_string_string_240x670.bmp
string_string_string_550x450.bmp
string_string_string_250x950.bmp

我想去掉数字部分240x670.bmp

将变成:

string_string_string_.bmp
string_string_string_.bmp
string_string_string_.bmp

我试过:

$a = preg_replace('[0-9]x[0-9]', '', $a);

但没有成功。

最佳答案

注意 PHP 正则表达式使用 regex delimiters ,并且您的正则表达式实际上被解析为 0-9]x[0-9 因为配对的外部 [...] 被视为分隔符。使用普通的/.../~...~ 来分隔模式。

既然你说文件总是有 bmp 扩展名,我打算建议

'~_[0-9]+x[0-9]+\.bmp$~'

参见 the demo

详细信息:

  • _ - 下划线
  • [0-9]+ - 1 个或多个数字
  • x - 一个 x
  • [0-9]+ - 1 个或多个数字
  • \. - 一个点
  • bmp - 文字字符串 bmp
  • $ - 字符串结尾。

如果扩展名可以是任意的,您还可以利用 pathinfo 来拆分路径并且只处理文件名:

$s = "string_string_string_240x670.bmp";
$p = pathinfo($s);
if (isset($p["filename"])) {
echo preg_replace('~_\d+x\d+$~', '_.', $p["filename"]) . $p["extension"];
}

这里,_\d+x\d+$ 不关心你有什么扩展名,它只是替换最后的 _+digits+x+digits 在字符串(文件名)的末尾。

参见 PHP demo

关于php - 获取字符串中的 240x670 并删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38718283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com