正则表达式可以指定一个模式,来匹配对应的字符串。
特殊字符要么表示某个类别的普通字符,要么影响它们周围的正则表达式如何解释。正则表达式的模式字符串不可以包含空字节,但可以使用\number符号指定空字节,例如
‘\x00‘。
特殊字符有:
”." 在默认模式下,匹配除换行以外的任意字符。如果 re.DOTALL 标志被指定,则匹配换行符在内的任意字符。
“^"在默认模式下,匹配字符串的起始位置。在 re.MULTILINE 标志被指定,也匹配换行符之后的字符。如正则表达式‘^py‘匹配字符串‘py88py’只能得到一个‘py‘
“$”在默认模式下,匹配字符串的末尾。在 re.MULTILINE 标志被指定,也匹配换行符之前的位置。
“*”匹配零次或多次前导的模式字符串,尽可能多的匹配。 ‘ab*’可以匹配‘a‘ ‘ab‘ ‘abb……(尽可能多匹配)‘
“+”匹配一个或多个前导的模式字符串,尽可能多的匹配。 ’ab+’可以匹配‘ab’ ‘abbb……‘尽可能多
“?”匹配零个个或多个前导的模式字符串。 ‘ab?’可以匹配‘a’ ‘ab‘
“*?”“+?”“??”限定符是贪婪的,它们匹配尽可能多的文本。在限定符之后加上?将使得匹配以非贪婪或最小的方式进行。
“{m}”表示精确匹配前面的正则表达式m个拷贝,较少的匹配将导致整个表达式不能匹配。例如,a{6}将精确匹配6个‘a’字符,否则将不能匹配。
"{m,n}"生成的正则表达式匹配前导正则表达式的m到n个重复,尝试匹配尽可能多的重复。例如,a{3,5}将匹配3到5个字符a.省略m表示下界为0,省略n表示上界无穷大。
“{m,n}?” 对于6个字符的字符串‘aaaaaa‘,a{3,5}将匹配5个a,a{3,5}?将匹配3个a。
“\” 对任意特殊字符进行转义,允许匹配字符‘*’ ‘?‘ 等
“[]” 用来表示一个字符的集合,在一个集合中:
“|” A|B,此处的A和B可以是任意的正则表达式,创建的这个正则表达式要么匹配A,要么匹配B,‘|’可以用来隔开任意个数的正则表达式。
re模块定义了几个函数、常量和异常。
re.compile(pattern,flag=0) 将正则表达式模式编译成一个正则表达式对象,它可以使用match()和search()方法来进行匹配
原文:http://www.cnblogs.com/mrcypress/p/5292222.html