python中的re模块提供对正则表达式的支持python
什么是正则表达式?正则表达式
正则表达式是可匹配的文本片断,最简单的正则表达式能够是普通的字符串,与它本身匹配。
函数
例如:表达式'python'与字符串'python'匹配。对象
通配符字符串
运用特殊字符串与多个字符串匹配。例如句点,'.ython'与字符串'python'和'jython'都匹配,还能够是'qython'、'+ython'、' ython',但不与'udython'、'ython'等字符串匹配,句点只能与一个字符匹配,不能与零或两个字符匹配。string
句点与除换行符外的任何字符都匹配,也被称为通配符。it
对特殊字符进行转义perl
'python.org',能与‘python.org’匹配,但也与'pythonaorg'匹配,这是须要在句点前加斜杠进行转义,re模块中要求用\\双斜杠,'python\\.org',此时只与'python.org'匹配。也能够用原始字符串,r'python\.org',此时表示是在re模块中使用的转义。字符集
字符集co
当须要更精细的控制时,能够用方括号将一个子串括起来,建立字符集。例如:'[pj]ython'与'python'和'jython'都匹配,但与其余字符串不匹配。'[a-z]'与a~z的任何字母都匹配,'[a-zA-Z0-9]'与大小写字母和数字匹配。字符集只能匹配一个字符
^脱字符,能够制定排除字符集。'[^abc]'与除a,b,c外的任何其余字符都匹配。
二选一和子模式
特殊字符:管道字符(|),'python|perl',存在相同的部分可写成'p(ython|erl)',单个字符也可称为子模式。
可选模式和重复模式
在子模式后加?,可将其指定为可选,便可包含可不包含。
r'(http://)?(www\.)?python\.org'与哪些字符串匹配?
答案:
'http://www.python.org'
'http://python.org'
'www.python.org'
'python.org'
(some)*,some可重复0、1或屡次
(some)+,some可重复1或屡次
(some){m,n},some可重复m~n次
re模块中几个使用正则表达式的函数:
compile(pattern[,flags]) 根据包含正则表达式的字符串建立模式对象
search(pattern,string[,flags]) 在字符串中查找模式
match(pattern,string[,flags]) 在字符串开头匹配模式
split(pattern,string[,flags]) 根据模式来分割字符串
findall(pattern,string) 返回一个列表,其中包含字符串中全部与模式匹配的子串
sub(pat,repl,string[,count=0]) 将字符串中与模式pat匹配的子串都替换为repl
escape(string) 对字符串中全部的正则表达式特殊字符都进行转义