带破折号或字符串末尾的任何特殊字符

时间:2012-11-28 11:24:24

标签: php regex preg-replace

我将字符串中的任何特殊字符转换为破折号,但使用此字符串的字母数字除外:

return preg_replace("![^a-z0-9]+!i", "-", $str);

但是,在某些情况下,我有这个字符串:

$str = "Hello there chubby!";

将导致:

Hello-there-chubby-

单词结尾处的短语是让我想到如何删除它的解决方案。

2 个答案:

答案 0 :(得分:7)

return trim(preg_replace("![^a-z0-9]+!i", "-", $str), '-');

将删除前导和尾随破折号。

答案 1 :(得分:0)

您可以尝试 rtrim("Hello-there-chubby-", "-");

preg_replace("#[^a-z0-9]+$#ims", "", "Hello-there-chubby-");

用于删除最后一个特殊字符。