我想用空字符串替换变量$key
的第12个位置中的任何数字字符:$key
变量有12个字符+递增的数字字符。例如:
IODN4YFK5XKV1
GYDN4YFK5XKV2
P3FU4YFK5XKV3
Bellow是我目前的php代码:
$data = ereg_replace( "[0-9]+$", "", $_REQUEST['code'] );
问题:如果我的$key = HXGE1SR9OWM428
,最后3位数字(428)将被移除,但我只想删除第12位的数字,以便我的结果为$data = HXGE1SR9OWM4
。
答案 0 :(得分:2)
为什么不使用substr()
?
$data = substr($_REQUEST['code'], 0, 12);
仅供参考,ereg_*
在较新版本的PHP
答案 1 :(得分:0)
你可以这样做:*我正在使用preg_replace。
$data = preg_replace( "/^([\w]{12})[0-9]+$/", "$1", $_REQUEST['code'] );
答案 2 :(得分:0)
使用您的问题中显示的已弃用的ereg_*
:
$data = ereg_replace('^([A-Z0-9]{12})[0-9]+', '\1', $_REQUEST['code']);
如果模式中需要包含小写字母,只需将ereg_replace
更改为eregi_replace
。
但是,更好的方法是使用preg_*
函数组:
$data = preg_replace('/^(\w{12})\d+$/', '$1', $_REQUEST['code']);
同样,对于小写字母,只需在模式的末尾添加i
,所以它是'/^(\w{12})\d+$/i'