转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件使用 >> 系统软件 >> 正文
Regular Expression心得体会         

Regular Expression心得体会

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2801 更新时间:2009/4/25 0:44:42
,结果就有可能会符合二个字,比如说”Iraq haha”这样的文字。使用Negative Lookaround就能解决这样的问题。

27. \b\w*q(?!u)\w*\b (一个字,其字母里有q但接下来的字母不是u)
这是”zero-width negative lookahead assertion”

28. \d{3}(?!\d) (三个位的数字,其后不接一个位数字)

同样的,可以使用(?<!exp)”zero-width negative lookbehind assertion”,来符合前面没接exp前缀的文字符串。

29. (?<![a-z ])\w{7} (七个字母数字的字符串,其前面没接字母或空格)
30. (?<=<(\w+)>).*(?=<\/\1>) (HTML
卷标间的文字)
这使用lookaheadlookbehind assertion来取出HTML间的文字,不包括HTML卷标。

请批注(Comments Please)
括号还有个特殊的用途就是用来包住批注,语法为”(?#comment)”,若设定”Ignore Pattern Whitespace”选项,则RE中的空格符当RE使用时会乎略。此选项设定时,”#”之后的文字会乎略。

31. HTML卷标间的文字,加上批注
(?<=  #
查找前缀,但不包含它
  <(\w+)> #HTML
标签
)       #
结束查找前缀
.*        #
符合任何文字
(?=     #
查找字尾,但不包含它
  <\/\1>  #
符合所抓取群组1之字符串,也就是前面小括号的HTML标签
)       #
结束查找字尾

 

寻找最多字符的字及最少字符的字(Greedy and Lazy)
RE下要查找一个范围的重复时(”.*”),它通常会寻找最多字符的符合字,也就是Greedy matching。举例来说。

32. a.*b  (开始为a结束为b的最多字符的符合字)
若有一字符串是”aabab”,使用上述RE所得到的符合字符串就是”aabab”,因为这是寻找最多字符的字。有时希望是符合最少字符的字也就是lazy matching。只要将重复前述项目的表加上问号(?)就可以把它们全部变成lazy matching。因此”*?”代表的就是重复任意次数,但是使用最少重复的次数来符合。举个例子来说:

33. a.*?b (开始为a结束为b的最少字符的符合字)
若有一字符串是”aabab”,使用上述RE第一个所得到的符合字符串就是”aab”再来是”ab”,因为这是寻找最少字符的字。

*? 重复任意次数,最少重复次数为原则
+? 
重复至少一次,最少重复次数为原则
?? 
重复零次或一次,最少重复次数为原则
{n,m}? 
重复至少n次,但不超过m次,最少重复次数为原则
{n,}? 
重复至少n次,最少重复次数为原则

 

还有什么没提到呢?
到目前为止,已经提到了许多建立RE的元素,当然还有许多元素没有提到,下表整理了一些没提到的元素,在最左边的字段的数字是说明在Expresso中的例子。
语法 说明
 \a Bell
字符
 \b 
通常是指字的边界,在字符组里所代表的就是backspace
 \t Tab
34 \r Carriage return
 \v Vertical Tab
 \f From feed
35 \n New line
 \e Escape
36 \nnn ASCII
八位码为nnn的字符
37 \xnn 
十六位码为nn的字符
38 \unnnn Unicode
nnnn的字符
39 \cN Control N
字符,举例来说

上一页  [1] [2] [3] [4] [5] [6]  下一页


[网络技术]2009年云南省信息技术会考考试系统培训心得体会上…  [网络技术]2009年云南省信息技术会考考试系统培训心得体会下…
[精彩网文]大学生励志:一位清华学子英语学习心得体会  [系统软件]Regular Expression 正则表达式-4 (C++)
[系统软件]Regular Expression 正则表达式-3 (C++)  [系统软件]Regular Expression 正则表达式-2 (Java)
[系统软件]Regular Expression 正则表达式-1 (C#)  [系统软件]The GRETA Regular Expression Template Archive
[系统软件]tomcat5下设置EL(expression language)  [系统软件]关于邮件地址的regular expression 问题
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 办公软件  · 系统软件
    · 常用软件  · 聊天工具
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台