您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp.net >> 正文

30分钟正则表达式指导

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-1-30 我要参与讨论

 

  by Jim Hollenhorst  译 寒带鱼

  你是否曾经想过正则表达式是什么,怎样能够快速得到对它的一个基本的认识?我的目的就是在30分钟内带你入门并且对正则表达式有一个基本的理解。事实是正则表达式并没有它看起来那么复杂。学习它最好的办法就是开始写正则表达式并且不断实践。在最初的30分钟之后,你就应该知道一些基本的结构并且有能力在你的程序或者web页面中设计和使用正则表达式了。对那些想要深入研究的人,现在已经有很多非常好的可用资源来让你更深入的学习。

  到底什么是正则表达式?

  我相信你对模式匹配的“计算机通配符”字符应该比较熟悉了。例如,如果你想要在一个Windows文件夹中找到所有Mircosoft Word文件,你要搜索“*.doc”,因为你知道星号会被解释为一个通配符,它匹配所有序列的字符串。正则表达式就是这种功能的一个更加细节的扩展。

  在写处理文本的程序或者web页面时,定位匹配复杂模式的字符串是很常见的。正则表达式就是用来描述这类模式的。这样,一个正则表达式就是一个模式的缩减代码。例如,模式“\w+”是表达“匹配任何包含字母数字字符的非空字符串”的精确方法。.NET框架提供了一个功能强大类库,它使得在你的应用程序中包含正则表达式更加容易。使用这个库,你可以轻易地搜索和替换文本,解码复杂的标题,解析语言,或者验证文本。

  学习正则表达式的神秘的语法的一个好办法是用例子作为开始学习的对象,然后实践创建自己的正则表达式。

  让我们开始吧!


  一些简单的例子
 

  搜索Elvis

  假设你要花费你所有的空余时间来扫描文档来寻找Elvis仍然活着的证据。你可以使用下面的正则表达式来搜索:

  1. elvis -- Find elvis

  这是搜索精确字符序列的一个完全合法的正则表达式。在.NET中,你可以轻松的设置选项来忽略字符的各种情况,所以这个表达式将会匹配“Elivs”,“ELVIS”,或者“eLvIs”。不幸的是,它也将匹配单词“pelvis”的后五个字母。我们可以改进这个表达式如下:

  2. \belvis\b -- Find elvis as a whole word

  现在事情变得更加有趣了。“\b”是一个特殊代码,它表示“匹配任何单词的开头或结尾的位置”。这个表达式将只匹配完整的拼写为“elvis”的单词,无论是小写的还是大写的情况。

  假设你想要找到所有这样的行,在其中单词“elvis”后面都跟着单词“alive”。句点或者点“.”是一个特殊代码匹配除了换行符之外的任何字符。星号“*”表示重复前面的部分有必要的次数以保证能够有一个匹配。这样,“.*”表示“匹配除了换行符之外的任意数目的字符”。现在建立一个表示“搜索在同一行内后面跟着单词‘alive’的单词‘elvis’”的表达式就是一件简单的事了。

  3. \belvis\b.*\balive\b -- Find text with "elvis" followed by "alive"

  仅仅使用几个特殊字符我们就开始创建功能强大的正则表达式了,而且它们已经开始变得难以被我们人类理解了。

  让我们看看另一个例子。

  确定电话号码的合法性

  假设你的web页面收集顾客的7位电话号码,而且你希望验证输入的电话号码是正确的格式,“xxx-xxxx”,这里每个“x”是一个数字。下面的表达式将搜索整个文本

[1] [2] [3] [4] [5] [6] [7] [8] 下一页

在google里搜索更多30分钟正则表达式指导

Google
Web www.51ec.org
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
我来说两句 对此文章发表了评论
  昵 称: *必填    ·注册用户·
  评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
评 论
内 容

 
评论列表 (最新 评论仅限网友观点!)

供求信息




| 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明