在Python的sre_parse.py文件中我们可以看到如下两行:
- SPECIAL_CHARS = ".\\[{()*+?^$|"
- REPEAT_CHARS = "*+?{"
在re.py文件中我们可以看到相关说明,整理如下:
①所谓SPECIAL_CHARS,因其有特殊含义,其是有身份的字符。(如果想表示一般含义则要转义。)
- "." #
一个任意字符(except a newline)
- "\\"
这个进一步的语义为"\",于是用"\"表示转义特殊的字符或转义特殊的序列。
示例:
①\. 转义"."为一般含义,就是一个dot。
②\\ 转义"\"为一般含义,就是一个a literal backslash。
③\d 将字符"d"转义,表示任一个数字,即Matches any decimal digit;equivalent to the set [0-9]。
- "[" # 用于"[]",匹配括号中的集合中的一个字符。表义:挑一个。
- "(" # 用于"()",匹配括号中的RE。表义:一起的。
- "^" # 匹配开始,字符前。
- "$" # 匹配结尾,字符后。 (the end of string or just before the newline at the end of the string)
- "|" # 用于A|B,表义:或者。
②所谓REPEAT_CHARS用于重复,其需要有重复的对象,即要重复谁的问题,其与前面的一个字符结合一起。
- "{" # 属于REPEAT_CHARS,表示次数。{2}:2次。{2,4}:2次或3次或4次。
- "*" # 属于REPEAT_CHARS,0 or more (greedy)。(即大口吃)
- "+" # 属于REPEAT_CHARS, 1 or more (greedy)。
- "?" # 属于REPEAT_CHARS, 0 or 1 (greedy),表义:有没有。
阅读(1121) | 评论(0) | 转发(0) |