我尝试从字符串中删除多个白色字符:
$content = preg_replace('/\s+/', " ", $content); //in some cases it doesn't work
但是当我写
$content = preg_replace('/\s\s+/', " ", $content); //works fine
有人能解释一下为什么吗?
因为当我写 /\s+/
时,它必须与一个或多个白色字符匹配,为什么它不起作用?
谢谢
最佳答案
您要匹配的最少空白字符数是多少?
\s+
相当于 \s\s*
—— 一个强制的空白字符,后跟任意数量的空白字符。
\s\s+
相当于 \s\s\s*
-- 两个 强制空白字符,后跟任意数字 (如果这是您想要的,则可能会更清楚 \s{2,}
)。
另请注意,$content = preg_replace('/\s+/', "", $content);
会将 $content
中的任何单个空格替换为单个空格空间。换句话说,如果您的字符串仅包含单个空格,则结果将不会发生变化。
关于php - 正则表达式:删除白色字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3550982/