正则入门:匹配空字符

换行、回车与Tab
服务器君一共花费了211.998 ms进行了5次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

我想先介绍一下回车换行的由来。通常,当我们在键盘上敲击一下回车键时,不管光标此时在哪里,总是会新起一行,然后将光标位于新行的首位置。这在计算机上看起来一气呵成,用一个符号来表示就 OK 了,可在正则表达式中,以及很多语言中(比如 VBScript),却被表示成了两个动作,一个叫“回车”(Carriage Return),一个叫“换行”(Line Feed),在语言,比如 VBScript中,就表示成了:Chr(13)&Chr(10)。这与打印机的工作原理有关,大家知道,打印机先于计算机键盘很多年,是键盘的雏形,在打印机上换行时,将进行两个动作:1、将打印头换到下一行;2、将打印头返回到新行的行首位置。也就分别对应了现在的“换行”和“回车”。

在正则表达式中,比较常用的三类空白字符如下表所示:

元字符 匹配描述
\r 回车
\n 换行
\t Tab键

这种情况使得书写表达式时,变得稍有不便,例如,如果我们想匹配一个换行的效果,我们需要将表达式写成“\r\n”。然后,我们在 IE 和 Firefox 中用 javascript 分别做个测试,却发现对于 IE6(NOTE:IE7 我没有试过)来说“\r\n”可以匹配一个换行,而在 Firefox 中,只用一个“\n”就可以了,使用“\r\n”则无法匹配。

效果演示

正则如下:

\s

www.nowamagic4 net

www.google2 com

www.nowamagic5 org

www.nowamagic4 net

www.google2 com

www.nowamagic5 org

匹配空字符了,其语法如下表所示:

元字符 匹配描述
\s 所有单个空字符,与 [\f\n\r\t\v] 相同
\S 所有单个非空字符,与 [^\f\n\r\t\v] 相同

本例代码

<script type="text/javascript">
function reg_replace()
{
	var test = document.getElementById("test");
	//regex = new RegExp("\s","g");
	regex = new RegExp("[\f\n\r\t\v]","g");
	test.innerHTML = test.innerHTML.replace(regex,"<span style='background-color:orange'>.</span>");
}

function reg_split()
{	
	var test = document.getElementById("split");
	//regex = new RegExp("\s","g");
	regex = new RegExp("[\f\n\r\t\v]","g");
	test.innerHTML = test.innerHTML.split(regex);
}
</script>

延伸阅读

此文章所在专题列表如下:

  1. 什么是正则表达式?
  2. 正则入门:匹配固定的单个字符
  3. 正则入门:匹配任意的单个字符
  4. 正则入门:字符组的使用
  5. 正则入门:在字符组中使用字符区间
  6. 正则入门:反义字符组的使用
  7. 正则入门:匹配空字符
  8. 正则入门:匹配一个或多个字符
  9. 正则入门:匹配零个或多个字符
  10. 正则入门:匹配零个或一个字符串
  11. 正则入门:匹配固定数目的字符
  12. 正则入门:匹配区间内数目的字符
  13. 正则入门:贪婪匹配
  14. 正则入门:惰性匹配
  15. 正则入门:两个匹配模式
  16. 正则入门:匹配单词边界
  17. 正则入门:边界的定义与相对性
  18. 正则入门:匹配非单词边界
  19. 正则入门:匹配文本首和尾
  20. 正则入门:子模式
  21. 正则入门:“或”匹配
  22. 正则入门:后向引用文本替换
  23. 正则入门:非获取匹配
  24. 正则总结:JavaScript中的正则表达式
  25. 正则总结:正则表达式在js中的高级应用

本文地址:http://www.nowamagic.net/librarys/veda/detail/1025,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/1025

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《Python在Unix和Linux系统管理中的应用》 Noab Gift (作者), Jeremy M.Jones (作者)

《Python在Unix和Linux系统管理中的应用(影印版)》作者们还构建了一个可以免费下载的Ubuntu虚拟机。该虚拟机包含了这《Python在Unix和Linux系统管理中的应用(影印版)》的源代码,还可以用来运行书中的实例,包括SNMP、IPython、SQLAlchemy和许多其他工具。《Python在Unix和Linux系统管理中的应用》展示了Python语言如何提供一种更加高效的方式来处理Unix和Linux服务器管理工作中的各种任务。《Python在Unix和Linux系统管理中的应用(影印版)》的每一章都会提出一个特定的管理问题,例如并发或数据备份,然后通过实际的例子提供基于Python的解决方案。

更多计算机宝库...