首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除多个空格

删除多个空格
EN

Stack Overflow用户
提问于 2010-02-24 21:02:06
回答 14查看 248.8K关注 0票数 232

我要从MySQL数据库中获取$row['message'],需要删除所有空格,如\n\t等。

代码语言:javascript
复制
$row['message'] = "This is   a Text \n and so on \t     Text text.";

应格式化为:

代码语言:javascript
复制
$row['message'] = 'This is a Text and so on Text text.';

我试过了:

代码语言:javascript
复制
 $ro = preg_replace('/\s\s+/', ' ',$row['message']);
 echo $ro;

但它不会删除\n\t,只会删除单个空格。有人能告诉我怎么做吗?

EN

回答 14

Stack Overflow用户

发布于 2010-02-24 21:03:40

您需要:

代码语言:javascript
复制
$ro = preg_replace('/\s+/', ' ', $row['message']);

您正在使用\s\s+,它表示空格(空格、制表符或换行符)后跟一个或多个空格。这实际上意味着用一个空格替换两个或多个空格。

您想要的是用单个空格替换一个或多个空格,这样您就可以使用模式\s\s*\s+ (推荐)

票数 425
EN

Stack Overflow用户

发布于 2010-02-24 21:21:18

代码语言:javascript
复制
<?php
$str = "This is  a string       with
spaces, tabs and newlines present";

$stripped = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $str);

echo $str;
echo "\n---\n";
echo "$stripped";
?>

下面的输出

代码语言:javascript
复制
This is  a string   with
spaces, tabs and newlines present
---
This is a string with spaces, tabs and newlines present
票数 75
EN

Stack Overflow用户

发布于 2012-08-20 00:12:18

代码语言:javascript
复制
preg_replace('/[\s]+/mu', ' ', $var);

\s已经包含了制表符和新行,所以上面的正则表达式似乎就足够了。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2326125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档