这个问题在这里已经有了答案:How can I convert ereg expressions to preg in PHP? (4 个回答) 3 年前关闭。
我正在尝试用一个空格替换多个空格。当我使用 ereg_replace
时,我收到关于它已被弃用的错误消息。
ereg_replace("[ \t\n\r]+", " ", $string);
是否有相同的替代品。我需要用一个空格替换多个 " "
个空格和多个 nbsp
个空格。
使用 preg_replace()
而不是 [ \t\n\r]
使用 \s
:
$output = preg_replace('!\s+!', ' ', $input);
从 Regular Expression Basic Syntax Reference:
\d、\w 和 \s 匹配数字、单词字符(字母、数字和下划线)和空格(空格、制表符和换行符)的简写字符类。可以在字符类内部和外部使用。
$output = preg_replace('/\s+/', ' ',$input);
\s
是 [ \t\n\r]
的简写。多个空格将替换为单个空格。
preg_replace("/[[:blank:]]+/"," ",$input)
/(?:\s\s+|\n|\t)/
=> 1410(最慢),/\s+/
=> 611(好的),/\s\s+/
=> 496(最快)。最后一个不替换单个\n
或\t
,但对我来说没问题。mb_ereg_replace
doc