【问题标题】:PREG_REPLACE EXCEPT a SPECIAL CARPREG_REPLACE 特殊汽车除外
【发布时间】:2013-11-09 09:09:30
【问题描述】:

我正在寻找一种方法来 preg_replace() 除了“-”之外的每个字符

preg_replace ('#[^.0-9a-z]+#i', '', $string);

我显然想替换除 a-Z0-9 和“-”之外的所有坏字符

结果完成:

$string = preg_replace('#[^.0-9a-z]/[^-]/+#i', '', $string);

【问题讨论】:

    标签: php preg-replace except


    【解决方案1】:

    只需在字符类中添加破折号:

    preg_replace ('#[^.0-9a-z-]+#i', '', $string);
    //               here ___^
    

    【讨论】:

      【解决方案2】:
      preg_replace('/[^-]/', '', $string);
      

      将替换除- 之外的所有内容。

      [] 表示项目集,^ 是非运算符。因此,当您输入[^-] 时,您是在说“给我所有不在这个集合中的东西,在这种情况下是-

      【讨论】:

      • 很高兴解释原因。也不要相信你需要那里的`\`。
      • 您忘记了分隔符。没有它们就无法工作。
      • 对不起,我没有做出很好的解释...我想替换除 0-9a-Z 之外的所有字符,并且 - 目标是清除站点地图的网址
      • 如果我很好理解应该是:preg_replace ('#[^.0-9a-z]/[^-]/+#i', '', $string);
      猜你喜欢
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 2015-05-16
      • 2018-10-13
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多