PHP删除带有可变数字的字符串的值
基本上,我从数据库中获取的数据格式类似于项目名称101,现在可能会继续增加,所以最终可能是项目名称1001。我的问题是,我如何删掉数字,只获取项目名称。我曾考虑过使用substr,但因为我不知道长度,所以我真的不能这样做。由于数字不同,我认为我不能使用str_replace有什么办法可以做到这一点吗?听起来您的数据库方案似乎有点不对劲。您可能应该尝试重构/规范化您的方案 但同时,您可以使用来修剪右侧的所有数字PHP删除带有可变数字的字符串的值,php,string,Php,String,基本上,我从数据库中获取的数据格式类似于项目名称101,现在可能会继续增加,所以最终可能是项目名称1001。我的问题是,我如何删掉数字,只获取项目名称。我曾考虑过使用substr,但因为我不知道长度,所以我真的不能这样做。由于数字不同,我认为我不能使用str_replace有什么办法可以做到这一点吗?听起来您的数据库方案似乎有点不对劲。您可能应该尝试重构/规范化您的方案 但同时,您可以使用来修剪右侧的所有数字 $val = rtrim($val, '0123456789'); 示例 Input
$val = rtrim($val, '0123456789');
示例
Input Output
nameofproject1001 nameofproject
nameofproject nameofproject
n4me0fproj3ct1001 n4me0fproj3ct
听起来您的数据库方案似乎有些不对劲。您可能应该尝试重构/规范化您的方案 但同时,您可以使用来修剪右侧的所有数字
$val = rtrim($val, '0123456789');
示例
Input Output
nameofproject1001 nameofproject
nameofproject nameofproject
n4me0fproj3ct1001 n4me0fproj3ct
对于像
project12V123
这样的字符串,最好这样做
$text = `project12V123`;
$text = preg_replace('/([\w]+)([^0-9])([0-9])+$/', '$1$2', $text);
将返回:
Project12V
或者使用rtrim
:
$text = rtrim($text,'0123456789');
对于像
project12V123
这样的字符串,最好这样做
$text = `project12V123`;
$text = preg_replace('/([\w]+)([^0-9])([0-9])+$/', '$1$2', $text);
将返回:
Project12V
或者使用rtrim
:
$text = rtrim($text,'0123456789');
您绝对应该使用正则表达式:
$fullname = "nameofproject101";
preg_match("/([a-z]+)([0-9]+)/i", $fullname, $matches);
$name = $matches[1];
$number = $matches[2];
echo "'$fullname' is '$name' followed by '$number'";
您绝对应该使用正则表达式:
$fullname = "nameofproject101";
preg_match("/([a-z]+)([0-9]+)/i", $fullname, $matches);
$name = $matches[1];
$number = $matches[2];
echo "'$fullname' is '$name' followed by '$number'";
使用正则表达式去除尾随数字。项目名称本身是否包含数字?@erisco从数据库中可以看出,它的存储方式类似于“项目名称101”,我需要它是“项目名称”,但我需要对数据做的是,我不需要数字,所以我需要将其去掉。@atrljoe我相信erisco是在问名称(没有尾随数字)是否可以包含数字。例如r2d2translator1001。使用正则表达式去除尾随数字。项目名称本身是否包含数字?@erisco从数据库中可以看出,它的存储方式类似于“项目名称101”,我需要它是“项目名称”,但我需要对数据做的是,我不需要数字,所以我需要将其去掉。@atrljoe我相信erisco是在问名称(没有尾随数字)是否可以包含数字。例如,r2d2translator1001。@Kristian,这正是我想要暗示的上述操作将把
R2D2Translator 1001
转换为rdtranslator
。可能不是OP想要的。@Kristian这就是我暗示的。。)上述操作将把R2D2Translator 1001
转换为rdtranslator
。可能不是OP想要的。这将把version2project101
变成version
。OP可能需要version2project
。这将把version2project101
变成version
。OP可能需要version2project
。