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

How to remove 2 last characters with preg_replace?

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

我该怎么做?

例如:

的输出
782A3 is 782,

0012122 is 00121,

76542A is 7654,

333333CD is 333333,

您可以使用substr函数。

但是如果您要使用 preg_replace,您可以这样做:

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

我很确定有更简单的方法来完成这项任务,但如果我们想使用正则表达式,我们将从一个简单的表达式开始,例如:

(.+)?(..)

如果我理解正确,并且我们想要的输出在这个捕获组中:

(.+)

Demo

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

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

echo $result;

正则表达式电路

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

建议

AbraCadaver在评论中的建议是更好的方法:

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