PHP清除字符串中空白正则表达式

在很多时候我们会碰到在字符串有会有空格,而这些空格不是我们想要的我们要怎么清除呢,下面我来介绍利用正则表达式来清除字符串中空白的办法,先利用trim系列函数来删除左右空格,代码如下:

  1. <?php
  2. trim 去除一个字符串两端空格,
  3. rtrim 是去除一个字符串右部空格,
  4. ltrim 是去除一个字符串左部空格。
  5. echo trim(" 空格 ")."<br>";
  6. echo rtrim(" 空格 ")."<br>";
  7. echo ltrim(" 空格 ")."<br>";
  8. ?>

删除所有空格不能使用php trim()函数,因类他也只能是去除两边空闲,代码如下:

  1. function trimall($str)//删除空格
  2. {
  3. $qian=array(" "," ","t","n","r");
  4. $hou=array("","","","","");
  5. return str_replace($qian,$hou,$str);
  6. }

上面只能删除是一些常见的空格了,下面分享一个更具体的,代码如下:

  1. $str = " This line containstliberal rn use of whitespace.nn";
  2. // First remove the leading/trailing whitespace
  3. //去掉开始和结束的空白
  4. $str = trim($str);
  5. // Now remove any doubled-up whitespace
  6. //去掉跟随别的挤在一块的空白
  7. $str = preg_replace('/s(?=s)/', '', $str);
  8. // Finally, replace any non-space whitespace, with a space
  9. //最后,去掉非space 的空白,用一个空格代替
  10. $str = preg_replace('/[nrt]/', ' ', $str);
  11. // Echo out: 'This line contains liberal use of whitespace.'
  12. echo "<pre>{$str}</pre>";

中间就是利用了替换连续空格与左右空格之后再利用preg_replace替换去除重复的,然后再用另一个正则表达式[nrt]来查找任何残余的换行符(n), 回车(r), 或制表符(t) 即可。