4

我想从这个字符串中删除最后一个数字,包括破折号:

你好世界093

结果应该是:

你好世界

4

3 回答 3

5

http://php.net/manual/en/function.preg-replace.php

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] );

在你的情况下,它应该是这样的:

$subject = 'hello-world-093' ;
$subject_stripped = preg_replace ( '/-[0-9]*$/' , '' , $subject);

上述模式将删除-字符串末尾的和所有数字。

于 2013-03-05T00:12:39.083 回答
1

http://php.net/manual/en/function.strrpos.php

strrpos — 查找字符串中最后一次出现的子字符串的位置

strrpos对字符进行操作,您-就知道结果将是-字符串中 a 的最后一个位置。

现在,您可以通过使用http://www.php.net/manual/en/function.substr.php并提供您的位置作为长度来仅获取字符串的第一部分。

于 2013-03-05T00:02:24.703 回答
0

这是另一种方式。我提供这不是最好的方法,而只是另一种剥猫皮的方法。我认为重要的是要了解有很多方法可以解决问题并进行探索。通过学习从不同角度解决问题,您将学到很多东西。

祝你好运,希望这会有帮助,

蒂姆·杜马斯

Tim@mpact-media.com

<?php 
$pattern = "/^(.*)-[0-9]*$/";
$string = "hello-world-093";
preg_match($pattern, $string, $matches);
print_r($matches);
?>
于 2013-03-05T00:24:27.507 回答