PHP preg_replace 最后 N 个字符(如果不是字母数字)

PHP preg_replace last N characters if non alphanumeric

如果这些字符不是字母数字字符串,我想从字符串中删除最后 N 个字符。

例如:

我能够使用以下正则表达式实现这一点,但它仅适用于最后一个字符(适用于上面的示例 1)。如何检查是否只有最后一个字符符合大小写...

/[^a-zA-Z\d\s:]$/

需要在字符 class 旁边添加 +,以便匹配一个或多个(非字母数字或 : 或 space) 字符存在于最后。

preg_replace('~[^a-zA-Z\d\s:]+$~', '', $str);

您可以使用:

/[^a-zA-Z\d]{1,3}$/g

{1,3}$ - 是字符串末尾多少个字符的范围不能是非字母数字