删除字符串前后的特殊字符

时间:2014-03-11 11:11:17

标签: php

尝试删除字母表开头之前和字母结尾之后的连字符,但不要丢失连字符。

  1. 示例
  2. 这是我有的字符串

    ---this-is-my-page--
    

    输出:this-is-my-page

    注意(每个请求的连字符号不同,数字可能很多)

    2。实施例

    怎么做,

    ---这-是页---

    我需要替换字符串与空格之间的连字符。但不要在开始和结束时松开连字符。

3 个答案:

答案 0 :(得分:2)

使用 trim 功能,它适用于字符串开头或结尾的任意数量的-(连字符),

$str = "---this-is-my-page---";
echo $str = trim($str,"-");

修改

而不是使用str_replace

$str = str_replace("-"," ",$str);

<强> DEMO

答案 1 :(得分:1)

使用trim($string, $trimCharacters)

  

trim - 从字符串的开头和结尾去掉空格(或其他字符)

<?php
    $str = '---this-is-my-page---';
    var_dump( trim($str, '-') ); //string(15) "this-is-my-page"
?>

DEMO


如果想要替换字符串中的连字符(而不是在开头/结尾),则可以使用正则表达式:

/^(-+)(.*?)(-+)$/

Regular expression visualization

..并将其替换为(first group)(second group with hyphens replaced)(third group)

在代码中:

<?php
    $str = '---this-is-my-page---';

    $str = preg_replace_callback('/^(-+)(.*?)(-+)$/', function($matches) {
        return $matches[1] . str_replace('-', ' ', $matches[2]) . $matches[3];
    }, $str);

    var_dump( $str ); //string(21) "---this is my page---"
?>

DEMO

答案 2 :(得分:0)

echo trim( "---this-is-my-page---","-");

trim会删除和处的字符并开始