Discuz教程网

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

[复制链接]
authicon 09927306 发表于 2011-1-18 12:11:36 | 显示全部楼层 |阅读模式
如果您想要去掉字符串开始和结束的空白可以使用PHP内部函数trim() 。但是, 我们经常想完全清除空白。需要把开始和结束的空白清除掉,将多个空白变为一个空白,使用一个规则来处理同样的类型的其它空白。
完成这些可以使用PHP的正则表达式来完成
下例可以去除额外Whitespace
代码如下:


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


上例一步一步的去掉所有的空白。首先我们使用trim()函数来去掉开始和结束的空白。然后,我们使用preg_replace() 去除重复的。\\s代表任何whitespace 。(?=) 表示向前查找 。它味着只匹配后面有和它本身相同字符的字符。所以这个正则表达式的意思是: \"被whitespace 字符跟随的任何whitespace 字符。\" 我们用空白来替换掉,这样也就去除了,留下的将是唯一的whitespace 字符。
最后, 我们使用另一个正则表达式[\\n\\r\\t]来查找任何残余的换行符(\\n), 回车(\\r), 或制表符(\\t) 。我们用一个空格来替换这些。





上一篇:老人多吃大枣花生汤 养肝护脾
下一篇:兼容性最强的PHP生成缩略图的函数代码
authicon forever21 发表于 2011-6-16 18:59:51 | 显示全部楼层
很好的,我喜欢
authicon yuki佳 发表于 2011-6-21 06:00:20 | 显示全部楼层
回贴下载呀
authicon 风中徜徉 发表于 2011-6-24 20:59:55 | 显示全部楼层
看帖必回
authicon TRACYFLYING 发表于 2011-6-27 22:00:34 | 显示全部楼层
谢谢,学习了
authicon 月之海洋 发表于 2011-8-10 06:00:03 | 显示全部楼层
支持一下,确实是不错的贴子。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-3 21:03

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表