【问题标题】:Simple preg_replace简单的 preg_replace
【发布时间】:2010-12-02 00:07:14
【问题描述】:

我根本不知道 preg_replace,它对我来说只是中文,无论如何我只需要从字符串中删除“&page-X”(如果存在)。

X 当然是一个数字,如果有人有一个有用的链接到一个有用的preg_replace 初学者教程也很方便!

【问题讨论】:

    标签: php string replace preg-replace


    【解决方案1】:

    实际上,正则表达式的基本语法由preg_replace 和朋友们支持,非常容易学习。可以将其视为描述具有特殊含义的某些字符的模式的字符串。

    在您非常简单的情况下,可能的模式是:

    &page-\d+
    

    \d 表示一个数字(数字字符 0-9),+ 表示:在 +(这里:\d)之前重复表达式一次或多次。所有其他角色只代表他们自己。

    因此,上面的模式匹配以下任何字符串:

    &page-0
    &page-665
    &page-1234567890
    

    由于preg 函数使用与 Perl 兼容的语法,并且在 Perl 中正则表达式在斜杠 (/) 之间表示,因此您必须将模式用斜杠括起来:

    $after = preg_replace('/&page-\d+/', '', $before);
    

    其实你也可以使用其他字符:

    $after = preg_replace('#&page-\d+#', '', $before);
    

    有关受支持语法的完整参考,请参阅PHP manual

    【讨论】:

    • 如果我想替换 "/page-1" 怎么办
    【解决方案2】:

    preg_replace 使用 Perl-Compatible Regular Expression 作为搜索模式。试试这个模式:

    preg_replace('/&page-\d+/', '', $str)
    

    请参阅pattern syntax 了解更多信息。

    【讨论】:

      【解决方案3】:
      $outputstring = preg_replace('/&page-\d+/', "", $inputstring);
      

      preg_replace()

      【讨论】:

        【解决方案4】:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多