文章目录
一、正则表达式简介
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑
说明:正则不需要学太深,以后基本只会用到.?*
二、正则表达式的应用场景
- 手机号、邮箱、密码
- 爬虫
三、re库、match()函数
- re.match(pattern, string, flags=0)
- 第一个参数是正则表达式,第二个参数表示要匹配的字符串,第三个参数是标致,位用于控制正则表达式的匹配方式 如: 是否区分大小写,多行匹配等等
- 如果匹配成功,则返回一个match对象,否则返回一个None
- match对象.group()
四、pattern
1 普通字符
字母、数字、汉字、下划线、以及没有特殊定义的符号,都是"普通字符"。正则
表达式中的普通字符,在匹配的时候,只匹配与自身相同的一个字符。
例如:表达式c,在匹配字符串abcde时,匹配结果是:成功;匹配到的内容
是c;匹配到的位置开始于2,结束于3。(注:下标从0开始还是从1开始,因
当前编程语言的不同而可能不同)
match()函数
2 元字符
正则表达式中使⽤了很多元字符,⽤来表示⼀些特殊的含义或功能

pattern里没有\时,不加r
pattern里有\时,加r
注意 以后在写正则表达式模板的时候 如果正则表达式的模板当中出现了一些元字符,但是这些元字符不在你的正则表达式的逻辑当中 用转义字符 " \ " 处理一下
一上两点无关,要分开考虑
3 预定义匹配字符集
正则表达式中的一些表示方法,可以同时匹配某个预定义字符集中的任意一个字符。比如,表达式\d可以匹配任意一个数字。虽然可以匹配其中任意字符,但是只能是一个,不是多个

4 重复匹配
前面的表达式,无论是只能匹配一种字符的表达式,还是可以匹配多种字符其中任意一个的表达式,都只能匹配一次。但是有时候我们需要对某个字段进行重复匹配,例如手机号码13666666666,一般的新手可能会写成\d\d\d\d\d\d\d\d\d\d\d(注意,这不是一个恰当的表达式),不但写着费劲,看着也累,还不⼀定准确恰当。
这种情况可以使用表达式再加上修饰匹配次数的特殊符号{},不但重复书写表达式就可以重复匹配。例如[abcd][abcd]可以写成[abcd]{2}


5 位置匹配和贪婪与非贪婪模式
位置匹配
有时候,我们对匹配出现的位置有要求,比如开头、结尾、单词之间等等

贪婪与非贪婪模式
在重复匹配时,正则表达式默认总是尽可能多的匹配,这被称为贪婪模式。例如,针对文本dxxxdxxxd,表达式(d)(\w+)(d)中的\w+将匹配第一个d和最后一个d之间的所有字符xxxdxxx。可见,\w+在匹配的时候,总是尽可能多的匹配符合它规则的字符。同理,带有?、*和{m,n}的重复匹配表达式都是尽可能地多匹配
- 贪婪匹配 Python当中默认是贪婪的 总是尝试匹配尽可能多的字符
- 非贪婪则和它相反 总是尝试匹配尽可能少的字符
- 主要用于?后有东西
五、案例
校验数字的相关表达式:

特殊场景的表达式:

2435

被折叠的 条评论
为什么被折叠?



