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