首页 > 解决方案 > 在下划线和随机数字之后删除字符串的最后一部分

问题描述

我的字符串看起来像

$img_name = "my_beautiful_picture_123456_789101112131415_16171819202122.jpg"

从第一个下划线后跟一个数字到末尾的最简单方法是什么?

我想输出

my_beautiful_picture

我试过

$img_name = substr($img_name, 0, strpos($img_name, "_"));

$img_name = preg_replace('/_[0-9].*/', '', $img_name);

但结果my对两者都适用,我对正则表达式不太熟悉。

标签: phpregexpreg-replacestrpos

解决方案


我们可以简单地使用带有preg_replaceorpreg_match或的简单表达式preg_match_all

_[0-9].+

测试

$re = '/_[0-9].+/s';
$str = 'my_beautiful_picture_123456_789101112131415_16171819202122.jpg';
$subst = '';

$result = preg_replace($re, $subst, $str);

echo $result;

输出

my_beautiful_picture

演示

正则表达式电路

jex.im可视化正则表达式:

在此处输入图像描述


推荐阅读