我想看看有没有办法在没有preg_replace
的情况下执行此操作,只需要字符串函数。
我正在使用此
$str = "-41d3vUYHtK3D-GI3QXiVhvfR-zNooU7U_--2697";
preg_replace("/\-\d+$/i","",$str)
删除后面的所有内容,包括最后一个“破折号”
答案 0 :(得分:3)
如果不要求最后一个字符必须是数字,那么您可以使用substr
[docs]和strrpos
[docs]:
$str = substr($str, 0, strrpos($str, '-'));
或者在PHP 5.3.0中,strstr
[docs]:
$str = strstr($str, '-', true);
另一方面,如果以下字符是数字,如果要删除最后一个短划线和 字符,那么使用正则表达式将更容易。
答案 1 :(得分:2)
$str = "-41d3vUYHtK3D-GI3QXiVhvfR-zNooU7U_--2697";
for($i=strlen($str)-1;$i>=0;$i--){
if($str[$i] == '-'){
$result = substr($str,0,$i);
break;
}
}
echo $result;
返回-41d3vUYHtK3D-GI3QXiVhvfR-zNooU7U_-