正则表达式 - 在字符串末尾修剪字符

时间:2010-05-29 16:14:20

标签: 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-

如何删除特定的尾随字符(在本例中为短划线?

提前致谢。

3 个答案:

答案 0 :(得分:11)

使用rtrim

rtrim($str, "-")

如果您坚持使用正则表达式,则可以执行

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

$字符与主题的结尾匹配。

答案 1 :(得分:1)

另一种解决方案。

<?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

答案 2 :(得分:0)

你的正则表达式是错误的,因为它用短划线删除了所有非字母数字字符。

那应该是

echo ereg_replace('-$','',strtolower($str));

$表示“字符串结束”,第二个参数是替换。 (至少我是这么认为的,我不知道php ereg_replace函数)