正则入门:匹配一个或多个字符

匹配邮件地址的正则
服务器君一共花费了503.211 ms进行了6次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

应该了解,上面所介绍的不管简单也好,复杂也好,都只是匹配单个字符,如果需要匹配一个很长的字符串,而组成这个字符串的每个字符都比较复杂(没有诸如\d 这样的简写方式),那么,可以想象,一个表达式会多么复杂。

回顾一下匹配 Web 中颜色的例子,我们的正则表达式写法是这样的:“#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]”。应该想到,如果有办法确定匹配的单个字符的个数就好了。这里将讨论使用正则表达式来进行多个字符的匹配。

正则表达式中,可以在 单个字符(比如“j”)、字符组(比如“[abcde]”)、特定字符类型(比如“\d”)、单个任意字符(即“.”) 后面加“+”,来表示匹配一个或多个(换言之,至少一个)字符组成的字符串。

拿上面的例子来说,对于 “n+” 有:

效果演示

正则如下:

n+

www.nowamagic.net

www.google.com

www.nowamagic.mmc.org

本例代码

function reg_replace()
{
	var test = document.getElementById("test");
	aim = "n+";
	var regex = new RegExp("("+aim+")","g");
	test.innerHTML = test.innerHTML.replace(regex,"<span style='background-color:orange'>$1</span>");
}

我们现在考虑一个实际的例子,我的电子邮件的写法:nowamagic@163.com ,如果没有本章的知识,匹配邮件地址是不可能的,因为,我们无法确定的知道邮件地址的长度。现在,如果我们要匹配这个邮件地址,结合之前的知识 和 本小节的新内容,很容易得出这样的表达式:\\w+@(\\w+\\.)+[a-z]{2,3}

nowamagic@163.com

nowamagic@google.com

www.nowamagic@org

www@nowamagic.org

前面说过:“-”只在字符组“[]”区间内才是一个元字符,在“[]”以外是普通字符。在此处,“.”在“[]”区间以外才是元字符,用以匹配任意单个字符,而在“[]”区间以内,它就变成了一个普通字符。所以,“[\w\.]”可以简写成“[\w.]”(写成“[\w\.]也不会出错”)。

延伸阅读

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

  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/1032,欢迎访问原出处。

不打个分吗?

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

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

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

大家都在看

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

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

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

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

《UNIX编程艺术》 姜宏 (作者)

《UNIX编程艺术》主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一Eric S. Raymond倾力多年写作而成。包括Unix设计者在内的多位领域专家也为本书贡献了宝贵的内容。《UNIX编程艺术》内容涉及社群文化、软件开发设计与实现,覆盖面广、内容深邃,完全展现了作者极其深厚的经验积累和领域智慧。

更多计算机宝库...