Chinaunix首页 | 论坛 | 博客
  • 博客访问: 102769
  • 博文数量: 23
  • 博客积分: 555
  • 博客等级: 中士
  • 技术积分: 320
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-14 11:04
文章分类

全部博文(23)

文章存档

2012年(23)

我的朋友

分类: Python/Ruby

2012-04-07 12:29:33

在Python的sre_parse.py文件中我们可以看到如下两行:

  1. SPECIAL_CHARS = ".\\[{()*+?^$|"
  2. REPEAT_CHARS = "*+?{"

在re.py文件中我们可以看到相关说明,整理如下:

①所谓SPECIAL_CHARS,因其有特殊含义,其是有身份的字符。(如果想表示一般含义则要转义。)

  1. "."  # 一个任意字符(except a newline)
  2. "\\"
这个进一步的语义为"\",于是用"\"表示转义特殊的字符或转义特殊的序列。
示例:
①\.   转义"."为一般含义,就是一个dot。
②\\   转义"\"为一般含义,就是一个a literal backslash。
③\d   将字符"d"转义,表示任一个数字,即Matches any decimal digit;equivalent to the set [0-9]。

  1. "[" # 用于"[]",匹配括号中的集合中的一个字符。表义:挑一个。
  2. "(" # 用于"()",匹配括号中的RE。表义:一起的。
  3. "^" # 匹配开始,字符前。
  4. "$" # 匹配结尾字符后。 (the end of string or just before the newline at the end of the string)
  5. "|" # 用于A|B,表义:或者。

②所谓REPEAT_CHARS用于重复,其需要有重复的对象,即要重复谁的问题,其与前面的一个字符结合一起。

  1. "{" # 属于REPEAT_CHARS,表示次数。{2}:2次。{2,4}:2次或3次或4次。
  2. "*" # 属于REPEAT_CHARS,0 or more (greedy)。(即大口吃)
  3. "+" # 属于REPEAT_CHARS, 1 or more (greedy)
  4. "?" # 属于REPEAT_CHARS, 0 or 1 (greedy),表义:有没有。
阅读(1087) | 评论(0) | 转发(0) |
0

上一篇:Python help yourself

下一篇:Python的类

给主人留下些什么吧!~~