【题外话】
一直没太明白python正则替换怎么用的,每次现用都疯狂百度。。这次下决心要研究下~
基本规则:
*表示任意个字符(包括0个)
+表示至少1个字符
?表示0个或1个字符
{n}表示n个字符,{n,m}表示n-m个字符
. - 匹配1个非换行符的任意字符
\d - 匹配1个数字,等价 [0-9] \D取反
\s - 匹配任何1个空白字符,等价 [ \f\n\r\t\v] \S取反
\w - 匹配字母、数字、下划线,等价[A-Za-z0-9_] \W取反
^ - 匹配开头
$ - 匹配结尾
eg1:匹配'010-12345'这样的号码?
由于'-'是特殊字符,在正则表达式中,要用''转义,所以,上面的正则是\d{3}-\d{3,8}
懒惰匹配&贪婪匹配:
懒惰匹配:尽可能短的匹配 .*?一般用于懒惰匹配
贪婪匹配:尽可能长的匹配,正则匹配默认是贪婪匹配
思考1:验证邮箱的正则表达? xx@xx.com
规则:
1.@之前必须有内容且只能是字母(大小写)、数字、下划线(_)、减号(-)、点(.)
2.@和最后一个点(.)之间必须有内容且只能是字母(大小写)、数字、点(.)、减号(-),且两个点不能挨着
3.最后一个点(.)之后必须有内容且内容只能是字母(大小写)、数字且长度为大于等于2个字节,小于等于6个字节
答案: ^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*.[a-zA-Z0-9]{2,6}$
python的正则匹配模块re--常用函数:
re.compile() --编译正则表达式模式,返回一个对象的模式;
re.match() --只匹配字符串的开始,若字符串开始不符合,则匹配失败,返回None;
re.findall() --匹配整个字符串,返回所有符合匹配的子串的集合;
re.sub()
re.subn()
re.search() --匹配整个字符串,直到找到一个匹配;
re.finditer()
re.split()
网友评论