【问题标题】:Regex - Trim character at the end of a string正则表达式 - 修剪字符串末尾的字符
【发布时间】:2011-02-25 12:24:42
【问题描述】:

我正在尝试删除字符串末尾的尾随 -(破折号)。这是我的代码:

产生这个:

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

我怎样才能删除一个特定的尾随字符,如果它在那里,在这种情况下是破折号?

提前致谢。

【问题讨论】:

标签: php regex


【解决方案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】:

    你的正则表达式是假的,因为它用破折号删除了每个非字母数字字符。

    应该是这样的

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

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

    【讨论】:

      【解决方案3】:

      使用rtrim:

      rtrim($str, "-")
      

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

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

      $ 字符匹配主题的结尾。

      【讨论】:

        猜你喜欢
        • 2010-11-23
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-30
        相关资源
        最近更新 更多