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