PHP删除带有可变数字的字符串的值

时间:2012-02-05 17:59:09

标签: php string

基本上从数据库我得到的数据格式就像这个nameofproject101现在这可能会继续增加,所以最终它可能是nameofproject1001我的问题是如何修剪数字,只是得到项目的名称。我想过使用substr但是因为我不知道长度总是我不能真的这样做。由于数字不同,我不认为我可以使用str_replace有没有办法实现这个目标?

4 个答案:

答案 0 :(得分:3)

听起来有点关于你的数据库方案。您可能应该尝试重构/规范您的方案。

但与此同时,您可以使用rtrim()修剪右侧的所有数字。

$val = rtrim($val, '0123456789');

<强>实施例

Input               Output
nameofproject1001   nameofproject
nameofproject       nameofproject
n4me0fproj3ct1001   n4me0fproj3ct

答案 1 :(得分:1)

表示字符串project12V123,最好这样做

$text = `project12V123`;
$text = preg_replace('/([\w]+)([^0-9])([0-9])+$/', '$1$2', $text);

将返回:

Project12V

或使用rtrim

$text = rtrim($text,'0123456789'); 

答案 2 :(得分:0)

你绝对应该使用正则表达式:

$fullname = "nameofproject101";
preg_match("/([a-z]+)([0-9]+)/i", $fullname, $matches);
$name   = $matches[1];
$number = $matches[2];
echo "'$fullname' is '$name' followed by '$number'";

答案 3 :(得分:-1)

preg_replace('/[^a-z]/i', '', $string);