如何使用preg_replace删除最后2个字符?

时间:2019-06-07 14:52:53

标签: php regex preg-replace regex-group substr

我有一个类似784XX的代码。 XX可以是字符或数字,我需要一个表达式来使用(并且仅)preg_replace删除最后2个字符(XX)。

我该怎么做?

例如,:的输出

782A3 is 782,

0012122 is 00121,

76542A is 7654,

333333CD is 333333,

2 个答案:

答案 0 :(得分:1)

您可以使用substr功能。

但是,如果您要使用preg_replace,则可以执行以下操作:

$val = preg_replace('/[\w\d]{2}$/', '', $val);

答案 1 :(得分:1)

我敢肯定,有很多简单的方法可以完成此任务,但是,如果我们希望使用正则表达式,那么我们将从一个简单的表达式开始,例如:

(.+)?(..)

如果我理解正确的问题,并且我们期望的输出在此捕获组中:

(.+)

Demo

$re = '/(.+)?(..)/m';
$str = '782A3
0012122
76542A
333333CD';
$subst = '$1';

$result = preg_replace($re, $subst, $str);

echo $result;

RegEx电路

jex.im可视化正则表达式:

enter image description here

建议

AbraCadaver在评论中的建议要好得多:

substr('784XX', 0, -2);