【问题标题】:PHP preg_replace replacing numbers along with special charsPHP preg_replace 替换数字和特殊字符
【发布时间】:2012-04-06 01:09:45
【问题描述】:

我有以下 PHP 代码从变量中删除特殊字符;

<?php
$name = "my%^$@#name8";
$patterns = array( '/\s+/' => '_', '/&/' => 'and', '/[^[:alpha:]]+/' => '_');
$name2 = preg_replace(array_keys($patterns), array_values($patterns), trim($name));
echo $name2;
?>

但是,除了特殊字符之外,数字也被替换为下划线_。我想在结果中包含数字。我该如何解决这个问题?

【问题讨论】:

    标签: php regex preg-replace php-5.3


    【解决方案1】:

    '/[^[:alpha:]]+/' 替换为'/[^[:alpha:][:digit:]]+/'。原件正在替换任何不是字母字符的东西。添加 [:digit:] 意味着它将替换任何不是字母或数字的内容,因此您的数字也将被保留。

    【讨论】:

      【解决方案2】:

      您的第三个模式/[^[:alpha:]]+/ 正在用下划线替换所有不是字母的内容。所以给它添加数字,比如/[^[:alpha:]0-9]+/

      【讨论】:

        猜你喜欢
        • 2014-05-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-23
        • 2016-02-09
        • 1970-01-01
        • 2015-07-10
        • 1970-01-01
        相关资源
        最近更新 更多