我该如何转换:
ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", " ", $data);
到
preg_replace("......", " ", $data);
我该如何转换:
ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", " ", $data);
到
preg_replace("......", " ", $data);
正则表达式中的所有内容似乎都对 perl 正则表达式有效。不同之处在于 perl 正则表达式需要边界字符(由第一个字符定义),以及第二个边界字符之后的可选标志(我将忽略它们,请参阅 PHP 页面以了解 preg_match 的使用)。
换句话说,^\d$
变成的 ereg 匹配/^\d$/
,其中/
是边界字符。如果你从一个不同的字符开始,那将成为边界字符。这很有用,就像您的情况一样,当/
在正则表达式中大量使用通常的边界字符并且您不想转义它时。例如/^\d$/
和|^\d$|
是等价的。
在这种特定情况下,您可以将其用作 preg_replace:
preg_replace("|[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]|", " ", $data);