Преобразование ereg_replace в preg_replace
Как я могу конвертировать:
ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", " ", $data);
в
preg_replace("......", " ", $data);
1 ответ
Все, что у вас есть в регулярном выражении, кажется действительным для регулярного выражения perl. Разница в том, что регулярные выражения Perl ожидают ограничивающие символы (определяемые первым символом) и необязательные флаги после второго ограничивающего символа (который я буду игнорировать, см. Страницу PHP для preg_match для их использования).
Другими словами, полный матч ^\d$
становится /^\d$/
, где /
это ограничивающий характер. Если вы начинаете с другого персонажа, он становится ограничивающим. Это полезно, как в вашем случае, когда обычный ограничительный характер /
интенсивно используется в регулярном выражении, и вам не нужно избегать его. Например, /^\d$/
а также |^\d$|
эквивалентны.
В этом конкретном случае вы можете использовать это как preg_replace:
preg_replace("|[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]|", " ", $data);