我有一个类似784XX的代码。 XX可以是字符或数字,我需要一个表达式来使用(并且仅)preg_replace
删除最后2个字符(XX)。
我该怎么做?
例如,:的输出
782A3 is 782,
0012122 is 00121,
76542A is 7654,
333333CD is 333333,
答案 0 :(得分:1)
您可以使用substr
功能。
但是,如果您要使用preg_replace,则可以执行以下操作:
$val = preg_replace('/[\w\d]{2}$/', '', $val);
答案 1 :(得分:1)
我敢肯定,有很多简单的方法可以完成此任务,但是,如果我们希望使用正则表达式,那么我们将从一个简单的表达式开始,例如:
(.+)?(..)
如果我理解正确的问题,并且我们期望的输出在此捕获组中:
(.+)
$re = '/(.+)?(..)/m';
$str = '782A3
0012122
76542A
333333CD';
$subst = '$1';
$result = preg_replace($re, $subst, $str);
echo $result;
jex.im可视化正则表达式:
AbraCadaver在评论中的建议要好得多:
substr('784XX', 0, -2);