1

我该如何转换:

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

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

4

1 回答 1

3

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

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

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

preg_replace("|[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]|", " ", $data);
于 2012-02-18T02:11:12.283 回答