2012-02-18 2 views
1

Как я могу конвертировать:ereg_replace конверсии preg_replace

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

в

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

+0

возможно дубликат [Преобразование Ерегло выражения PREG] (http://stackoverflow.com/questions/6270004/converting-ereg- выражения-to-preg) – mario

ответ

3

Все, что есть в регулярном выражении оказывается справедливым для регулярного выражения Perl. Разница заключается в том, что регулярные выражения perl ожидают ограничивающие символы (определенные первым символом) и необязательные флаги после второго ограничивающего символа (который я проигнорирую, см. Страницу PHP для preg_match для их использования).

Иными словами, матч ereg от ^\d$ становится /^\d$/, где / - ограничительный знак. Если вы начинаете с другого символа, это становится ограничивающим символом. Это полезно, как и в вашем случае, когда обычный ограничивающий знак / используется в основном выражении, и вы не хотите его избегать. Например, /^\d$/ и |^\d$| эквивалентны.

В данном конкретном случае, вы можете использовать это в качестве preg_replace:

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

Большое спасибо! Я не считал, что это может быть так просто ... – FidoBoy

Смежные вопросы