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

时间:2015-09-23 09:23:00

标签: php regex preg-replace

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

例如:

  • TEST. - > TEST
  • TEST2.- - > TEST2
  • TEST_3.,/ - > TEST_3

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

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

2 个答案:

答案 0 :(得分:2)

Juat在字符类旁边添加+,以便它与最后一个或多个(非字母数字或:或空格)字符匹配。

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

答案 1 :(得分:0)

您可以使用:

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

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