php - 正则表达式:删除白色字符

标签 php regex

我尝试从字符串中删除多个白色字符:

$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/

相关文章:

php - 在 codeigniter 中使用 AJAX 上传文件时出错

php - MySQL数据库查询-速度

php - 将 PHP 数组中的相同项目分组并进行计数

当我使用 textarea 时,php 无法正确使用 textarea 标签并显示其余的 html 标签

regex - 将匹配的正则表达式复制到新文件

Ruby - 用符号替换字符串中的字符

替换字符串/文本中出现的 'from nth to the last' 个单词

正则表达式范围在 0 到 100 之间,包括两位小数

php - PHP error_log()无法正常工作

java - 无法使用正则表达式在 Talend Open Studio 中过滤文件名