【问题标题】:ereg_replace to preg_replace conversion [duplicate]ereg_replace 到 preg_replace 转换
【发布时间】:2012-03-09 09:42:12
【问题描述】:

如何转换:

ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", " ", $data);

preg_replace("......", " ", $data);

【问题讨论】:

    标签: php preg-replace deprecated ereg-replace


    【解决方案1】:

    您在正则表达式中的所有内容似乎都对 perl 正则表达式有效。不同之处在于 perl 正则表达式需要边界字符(由第一个字符定义),以及第二个边界字符之后的可选标志(我将忽略它们,请参阅 PHP 页面中的 preg_match 以了解它们的使用)。

    换句话说,^\d$ 的 ereg 匹配变为/^\d$/,其中/ 是边界字符。如果你从一个不同的字符开始,那将成为边界字符。这很有用,就像您的情况一样,当/ 的通常边界字符在正则表达式中被大量使用并且您不想转义它时。例如,/^\d$/|^\d$| 是等价的。

    在这种特定情况下,您可以将其用作 preg_replace:

    preg_replace("|[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]|", " ", $data);
    

    【讨论】:

    • 非常感谢!!没想到这么简单……
    猜你喜欢
    • 1970-01-01
    • 2013-07-17
    • 2011-01-27
    • 2013-05-26
    • 2012-10-01
    • 2012-01-28
    • 1970-01-01
    • 2012-08-06
    相关资源
    最近更新 更多