python中的正则表达式

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)  对字符串中全部的正则表达式特殊字符都进行转义 

相关文章
相关标签/搜索