Php 删除字符串末尾的所有非字母数字字符

Php 删除字符串末尾的所有非字母数字字符,php,string,preg-replace,Php,String,Preg Replace,如何删除字符串末尾的所有非字母数字字符。例如: Quick @# brown fox - Quick @# brown fox## Quick @# brown fox Quick @# brown fox @$# 都变成 Quick @# brown fox 试图可能使用preg_replace,因为ereg_replace已被弃用 还可以对其进行调整,以允许在字符串末尾使用特定的非字母数字字符,例如引号、感叹号、问号+1我正在考虑类似的内容。有一件事:\W将不匹配下划线,

如何删除字符串末尾的所有非字母数字字符。例如:

Quick @# brown fox -  
Quick @# brown fox##  
Quick @# brown fox  
Quick @# brown fox @$#  
都变成

Quick @# brown fox
试图可能使用preg_replace,因为ereg_replace已被弃用


还可以对其进行调整,以允许在字符串末尾使用特定的非字母数字字符,例如引号、感叹号、问号

+1我正在考虑类似的内容。有一件事:\W将不匹配下划线,因此您可能希望明确查找它。$只包含一个换行符,\Z包含一个换行符或主题结尾,更适合我的情况,cheers。有没有允许在变量转储上重新分配的方法,例如:$a=var\u dump$rep?变量转储的作用是打印变量内容和类型,用于调试/查看变量内容,因此您不需要该行仅用于测试,$rep持有you's changed string,您可以使用它执行任何操作。因此,您不需要允许a-z的alfabet、0-9数字和单引号/双引号以及问号吗?然后您可以使用“/[^a-z0-9\\?!”;]+\Z/i”
$str = 'Quick @# brown fox @$#';
$rep = preg_replace('/[^a-z0-9]+\Z/i', '', $str);
var_dump($rep);
$rep = preg_replace('/\W+$/', '', $str);