PHP清除字符串中空白正则表达式
在很多时候我们会碰到在字符串有会有空格,而这些空格不是我们想要的我们要怎么清除呢,下面我来介绍利用正则表达式来清除字符串中空白的办法,先利用trim系列函数来删除左右空格,代码如下:
- <?php
- trim 去除一个字符串两端空格,
- rtrim 是去除一个字符串右部空格,
- ltrim 是去除一个字符串左部空格。
- echo trim(" 空格 ")."<br>";
- echo rtrim(" 空格 ")."<br>";
- echo ltrim(" 空格 ")."<br>";
- ?>
删除所有空格不能使用php trim()函数,因类他也只能是去除两边空闲,代码如下:
- function trimall($str)//删除空格
- {
- $qian=array(" "," ","t","n","r");
- $hou=array("","","","","");
- return str_replace($qian,$hou,$str);
- }
上面只能删除是一些常见的空格了,下面分享一个更具体的,代码如下:
- $str = " This line containstliberal rn use of whitespace.nn";
- // First remove the leading/trailing whitespace
- //去掉开始和结束的空白
- $str = trim($str);
- // Now remove any doubled-up whitespace
- //去掉跟随别的挤在一块的空白
- $str = preg_replace('/s(?=s)/', '', $str);
- // Finally, replace any non-space whitespace, with a space
- //最后,去掉非space 的空白,用一个空格代替
- $str = preg_replace('/[nrt]/', ' ', $str);
- // Echo out: 'This line contains liberal use of whitespace.'
- echo "<pre>{$str}</pre>";
中间就是利用了替换连续空格与左右空格之后再利用preg_replace替换去除重复的,然后再用另一个正则表达式[nrt]来查找任何残余的换行符(n), 回车(r), 或制表符(t) 即可。