2012-02-18 62 views
1

我如何转换:ereg_replace到的preg_replace转换

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

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

+0

[转换EREG表达式来预浸](可能重复http://stackoverflow.com/questions/6270004/converting-ereg-表达式对preg) – mario 2012-02-18 01:18:23

回答

3

您在正则表达式拥有的一切似乎是有效的一个Perl的正则表达式。不同之处在于,perl正则表达式期望边界字符(由第一个字符定义)和第二个边界字符后面的可选标记(我将忽略,请参阅preg_match的PHP页面以供他们使用)。

换句话说,^\d$的ereg匹配变为​​,其中/是边界字符。如果你从一个不同的角色开始,那就变成了边界角色。这很有用,正如你的情况那样,当在正则表达式中使用/的通常边界字符并且你不想逃避它时。例如,​​和|^\d$|是等效的。

在此特定情况下,可以使用这个作为一个preg_replace函数:

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

非常感谢!我不认为这可能是如此简单...... – FidoBoy 2012-02-18 02:51:43