正则表达式,个人笔记整理

search()方法

fa = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
fb = fa.search('My number is 415-555-4242.').group()
合并写法:
re.search(r'as', 'sas123').group()

match()方法

re.match(r'as', 's as 123').group()
区别:match 只匹配开头文本,开头未匹配到返回None,用在账户注册输入等比较好
search是扫描整个文本,只要其中匹配到即可!search在长文本中查找比较好用,
也是最常用的

表达式,分三步,第一建立表达式,第二,传入字符串,第三匹备表达式

例子:

batRegex = re.compile(r'Bat(man|mobile|copter|bat)')
mo = batRegex.search('Batmobile lost a wheel')
a=mo.group()
print(a)         #Bat开头,都有属性,(其中一个组匹配先匹配到)
b=mo.group(1)
print(b)         #输出组1

#----------------------------------------------
()代表组

| 代表管道可以选项

\d+(\.\d+)?     #匹配整数带小数的数写法

findall()方法

fa = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
fb = fa.findall('Cell: 415-555-9999 Work: 212-555-0000')

-----------------------------------------------------------

新的写法:
re.findall(r'\d*','Cell: 415-555-9999 Work: 212-555-0000')

返回的是一个列表,把所有匹配到的都返回列表

列子:

batRegex = re.compile(r'Bat(wo)?man')
注:(wo)?代表可以选匹配,不知道该组wo是否存在都匹配,
存在匹配一次,不存在匹配一次                    #0次1次
batRegex = re.compile(r'Bat(wo)*man')
注:(wo)*(称为星号)意味着“匹配零次或多次”,即星号之
前的分组是(wo)?的升级版                     #0次1次N次
batRegex = re.compile(r'Bat(wo)+man')
注:(wo)+ 必须至少匹配一次,没有则返回None     #1次N次

batRegex = re.compile(r'(wo){3}')       #匹配3次
batRegex = re.compile(r'(wo){3,5}')    #匹配3-5次范围之间
batRegex = re.compile(r'(wo){,3}')    #匹配0-3次范围之间
batRegex = re.compile(r'(wo){5,}')    #匹,5-无限N次范围之间

建立自己的字符分类

1.字符分类[aeiouAEIOU]将匹配所有元音字符,不论大小写。

2.字符分类[a-zA-Z0-9]将匹配所有小写字母、大写字母和数字。

3.插入字符[^....],就可以得到“非字符类”。[^aeiouAEIOU]即排除aeiouAEIOU字母外 所有其他字符

sub()方法,替换,删除,调用

txt = '<b class="cBold">'

#第一个参数为删除所有<b,第二个参数是替换所有对应删除的,第三个为 str字符串值
fa= re.sub('<b','',txt)

print(fa)
split()方法,切割
ret = re.split(r':| ','info:xiaoZhang 33 shandong')

print(ret)

#返回以:|空格符号处切割,返回列表['info','xiaoZhang','33','shangdong']

2.1 字符分类

\d 是正则表达式(0|1|2|3|4|5|6|7|8|9)的缩写。

\D 除 0 到 9 的数字以外的任何字符

\w 任何字母、数字或下划线字符(可以认为是匹配“单词”字符)

\W 除字母、数字和下划线以外的任何字符

\s 空格、制表符或换行符(可以认为是匹配“空白”字符)

\S 除空格、制表符和换行符以外的任何字符

注意:字符分类对于缩短正则表达式很有用。字符分类[0-5]只匹配数字 0 到 5,这比

输入(0|1|2|3|4|5)要短很多。

插入^字符和美元$字符

r'^Hello'必须以'Hello'开始的字符串 匹配以^开始匹配,如果不是Hello开

始的文本,无法匹配

r'\d$'必须以数字 0 到 9 结束的字符串 匹配以$结束匹配,如果不是以

数字结尾的,无法匹配

通配字符

.(点)字符称为“通配符”。它匹配除了换行之外的所有
字符。

用点.*匹配所有字符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值