现在的位置: 首页 > 综合 > 正文

(转贴)正则表达式学习心得体会(5)

2013年10月16日 ⁄ 综合 ⁄ 共 1196字 ⁄ 字号 评论关闭

还有什么没提到呢?

  到目前为止,已经提到了许多建立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字符,举例来说Ctrl-M是/cM

  40 /A 字符串的开始(和^相似,但不需籍由multiline选项)

  41 /Z 字符串的结尾
  /z 字符串的结尾

  42 /G 目前查找的开始

  43 /p{name} Unicode 字符组名称为name的字符,比如说/p{Lowercase_Letter} 所指的就是小写字
  (?>exp) Greedy次描述,又称之为non-backtracking次描述。这只符合一次且不采backtracking。

  44 (?<x>-<y>exp)

  or (?-<y>exp) 平衡群组。虽复杂但好用。它让已命名的抓取群组可以在堆栈中操作使用。(小弟对这个也是不太懂哩)

  45 (?im-nsx:exp) 为次描述exp更改RE选项,比如(?-i:Elvis)就是把Elvis大乎略大小写的选项关掉

  46 (?im-nsx) 为之后的群组更改RE选项。
  (?(exp)yes|no) 次描述exp视为zero-width positive lookahead。若此时有符合,则yes次描述为下一个符合标的,若否,则no 次描述为下一个符合标的。
  (?(exp)yes) 和上述相同但无no次描述
  (?(name)yes|no) 若name群组为有效群组名称,则yes次描述为下一个符合标的,若否,则no 次描述为下一个符合标的。

  47 (?(name)yes) 和上述相同但无no次描述

  结论

  经过了一连串的例子,及Expresso的帮忙,相信各位大大对RE有个基本的了解,网络上当然有许多有关于RE的文章,如果各位大大有兴趣http://www.codeproject.com 还有许多关于RE的相关文章。若大大对书有兴趣的话,Jeffrey Friedl的Mastering Regular Expressions很多大大都有推(小弟还没拜读)。希望籍由这样的心得报告,能让对RE有兴趣的大大能缩短学习曲线,当然这是小弟第一次接触RE,若文章中有什么错误或说明的不好的地方,可要请各位大大体谅,并请各位大大将需要修正的地方mail给小弟,小弟会非常感谢各位大大。

 

抱歉!评论已关闭.