【问题标题】:Php remove special chracter from from last charcters of stringphp从字符串的最后一个字符中删除特殊字符
【发布时间】:2014-02-02 12:52:03
【问题描述】:

我有一组数组字符串 .. 在最后一个位置以及它们之间包含特殊字符。我只想从最后一个位置删除特殊字符。

preg_replace('/[^A-Za-z0-9\-\']/', '', $string);  

我知道我可以使用替换功能来删除所有特殊字符,但我不想删除字符串之间的特殊字符。我只想从最后一个位置删除特殊字符。对不起我的英语不好..

hope,
 all" 
inthe. 
world" 
to-the. 
world" 
some-thing"

【问题讨论】:

    标签: php string replace


    【解决方案1】:

    如果您要删除的特殊字符事先已知,您可以使用rtrim()

    $string = rtrim($string, ',".');
    

    第二个参数描述了应该删除的字符列表。

    Demo


    如果不知道特殊字符,那么您可以使用正则表达式解决方案。下面的preg_replace() 语句将删除任何不是单词字符([a-zA-Z0-9_],或连字符(-)或单引号(')的字符:

    preg_replace('/[^\w\-\']$/', '', $str);  
    

    说明:

    • [^\w-\'] - 匹配列表中的单个字符
      • \w - 任何单词字符 [a-zA-Z0-9_]
      • \- - 文字字符 -
      • \' - 文字字符 '
    • $ - “行尾”锚点 - 用于断言字符串末尾的位置

    【讨论】:

      【解决方案2】:

      这应该可以工作(注意在正则表达式中添加$):

      preg_replace('/[^A-Za-z0-9\-\']$/', '', $string);  
      

      $ 匹配行尾,所以只有前面的匹配是最后一个字符时,正则表达式才会匹配。

      【讨论】:

        猜你喜欢
        • 2011-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-11
        • 2016-01-23
        相关资源
        最近更新 更多