正则表达式是一个很强大的工具,这一点在python中显得尤为突出。在python中re模块表示正则表达式。正则表达式是可以匹配文本片段的模式。
1.通配符(.)可以用来匹配任何的一个字符,包括空格,但是除了换行符之外。
2.对特殊字符进行转义,从而让它们表现的像普通字符一样,因为它们在这里本身就是普通字符,只是为了“屏蔽”它们作为特殊字符的作用。例如用python\.org可以用来转义定义python.py,从而取消掉了(.)它的通配符的作用。
3.字符集,用中括号括住字符串,例如[a-z]可以用来匹配a到z的任意一个字符。此外还可以反转字符集,即在开头使用‘^’符号(脱字符),进行取反。
4.管道符号:(|),进行选择的符号,如'python|perl';
5.子模式,用圆括号括起需要进行选择运算的部分,如'p(ython | erl)';
6.可选项:在子模式后面加上问好,就变成了可选项,例如r'(http://)?(www\.)?python\.org',问号表示子模式出现一次或者多次,或者不出现。相对应的,(python)*允许模式重复0次或者多次;(python)+允许模式重复1次或者多次;(python){m , n}允许模式重复m~n次。
7.函数re.complier将正则表达式转换为模式对象,可以实现更有效率的匹配。即使用complier进行一次转换之后,在每次使用模式的时候就不用进行转换。例如,pat = re.complier(xxxxxx)则pat就是一个其创建的模式对象,它也可以用于普通的re的函数。
8.字符串的开始和结尾位置:用于确定要匹配的字符串的位置,例如只想在字符串的开头进行匹配,用托字符(^),例如'^http'只会匹配位于首部的'http'字符串;同理,运用美元符号‘$’可以进行尾部的匹配。
9.贪婪模式与非贪婪模式。python中的匹配时贪婪模式的,也就是会尝试匹配尽可能多的字符,在贪婪模式的后面加上‘?’即可转变为非贪婪模式,也就是会尽可能少的匹配字符;
当然py里面的正则离不开更多的函数,可以自己去查阅。