Php Regex-字符串末尾的修剪字符

Php Regex-字符串末尾的修剪字符,php,regex,Php,Regex,我试图删除字符串末尾的尾随-(破折号)。这是我的密码: <?php $str = 'SAVE $45! - Wed. Beach Co-ed 6s (Jul-Aug)'; echo ereg_replace('([^a-z0-9]+)','-',strtolower($str)); ?> 产生以下结果: save-45-wed-beach-co-ed-6s-jul-aug- save-45-wed-beach-co-ed-6s-jul-aug- 如果某个特定尾随字符在那里(在本

我试图删除字符串末尾的尾随
-
(破折号)。这是我的密码:

<?php $str = 'SAVE $45! - Wed. Beach Co-ed 6s (Jul-Aug)'; echo ereg_replace('([^a-z0-9]+)','-',strtolower($str)); ?> 产生以下结果:

save-45-wed-beach-co-ed-6s-jul-aug- save-45-wed-beach-co-ed-6s-jul-aug- 如果某个特定尾随字符在那里(在本例中为破折号),如何删除该字符

提前感谢。

使用:

如果你坚持使用正则表达式,你可以这样做

preg_replace('/-$/', '', $str)

$
字符与主题结尾匹配。

您的正则表达式为false,因为它用破折号删除所有非字母数字字符

那应该是

echo ereg_replace('-$','',strtolower($str));
$表示“字符串结束”,第二个参数是替换项。 (至少我认为是这样,我不知道php ereg_replace函数)

另一种解决方案

<?php

$string = 'SAVE $45! - Wed. Beach Co-ed 6s (Jul-Aug)';
$search = array('/[^a-z0-9]+/', '/[^a-z0-9]$/');
$replace = array('-', '');
echo preg_replace($search, $replace, strtolower($string));

?>
你可能想检查一下:可能是
<?php

$string = 'SAVE $45! - Wed. Beach Co-ed 6s (Jul-Aug)';
$search = array('/[^a-z0-9]+/', '/[^a-z0-9]$/');
$replace = array('-', '');
echo preg_replace($search, $replace, strtolower($string));

?>
save-45-wed-beach-co-ed-6s-jul-aug