php - 删除多个空格

标签 php regex string preg-replace whitespace

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

$row['message'] = "This is   a Text \n and so on \t     Text text.";

应格式化为:

$row['message'] = 'This is a Text and so on Text text.';

我试过了:

 $ro = preg_replace('/\s\s+/', ' ',$row['message']);
 echo $ro;

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

最佳答案

你需要:

$ro = preg_replace('/\s+/', ' ', $row['message']);

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

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

关于php - 删除多个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2326125/

相关文章:

php - MySQL 搜索包含空格的值返回空结果(没有行)

regex - Perl 命令行替换 unicode

python - 如何使用正则表达式获取介于 `word' 之间的单词? Python

string - 方形子序列

php - 在 PHP 中创建共享库

php - 一次查询从 mysql 中的 2 个表中获取数据(使用 php)

java - 如何否定 glob 模式中的内部字符

java.lang.NumberFormatException : For input string: "5

php - 这个 PDO 代码对 SQL 注入(inject)足够安全吗?

Java如何根据输入检查多个正则表达式模式?