正则个人总结

一、知识点
1.正则表达式
定义:使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串
(1)爬虫基础模块
要求:验证电话号码(11)、身份证号(18)、邮箱、用户名称密码、url地址
(2)异步验证(用户注册登录)
(3)方式:(处理字符串)
A:match、search匹配
B:slit()分割
C:sub()替换

2.Match:是从起始位置搜索匹配
(1)Re模块
Re.match 是用来进行正则匹配检查的方法,若字符串匹配正则表达式,则返回匹配对象,否则返回None
Group方法可用来获取匹配对象的内容
例:
import re #re模块实现正则表达式
#匹配match
#match(pattern,string)
#pattern–>正则表达式,string–>待匹配字符串(数字、字母、汉子、空格)

result = re.match(‘122’,‘122222222345’)
#group用来获取匹配对象的内容,
print(result.group())
(2)属性:
String:匹配时使用的文本
Re;匹配时使用的pattern对象
Pos: 被搜索的字符串的开始搜索位置的索引
endpos:…结束搜索位置的索引
Lastindex:最后一个被捕获分组在文本中的索引,没有捕获是返回none
Lastgroup:最后一个被捕获的分组的别名。。。。。。。。
例:
import re
pattern=r’(12)(33+)(?P.*)’ #第三分组别名P< >内只能是字母(包括汉字)
string=‘1233331233’ P大写
try:
r= re.match(pattern,string)
print(‘string:’,r.string)
print(‘re’,r.re)
print(‘pos:’,r.pos)
print(‘endpos:’,r.endpos)
print(‘lastindex:’,r.lastindex)
print(‘lastgroup:’,r.lastgroup)

print(r.group())

except:
print(‘未匹配成功!’)
(3)方法:
Group函数:获得一个或多个分组的字符串
Start函数:返回指定的组截获的子串在string中的起始索引
End函数: 返回指定的组截获的子串在string中的结束索引
Span函数:返回指定的组截获的子串在string中的开始和结束索引
Expand函数:将匹配到的分组代入template中然后返回
例:
import re
m=re.match(r’(\w+) (?P\w+)(?P.*)’,‘hello world!’)

print(m.group()) # out:hello world! 字符串形式
print(m.group(1,3)) #out:(‘hello’, ‘!’) 元组形式
print(m.groups()) # (‘hello’, ‘world’, ‘!’)各分组全部输出 元组形式
print(m.groupdict()) # {‘ss’: ‘world’, ‘sign’: ‘!’} 有别名的分组按字典输出
print(m.start(2)) #6 分组下标从1 开始
print(m.end(2)) #11
print(m.span(2)) #(6, 11)
print(m.expand(r’\1\3\2’)) #hello!world 按分组号自由组合 字符串形式
3.表示字符
. : 匹配任意一个字符(除了\n)
[ ]: 匹配[ ]中列举的字符(表达一个匹配范围)
\w : 匹配标识符字符。即字母(包括汉字)、数字、下划线
\W : 匹配非标识符字符
\s : 匹配空格、tab键
\S : 匹配非空格、tab键
\d : 匹配数字(0-9)
\D : 匹配非数字
例:
import re

#ret = re.match(’\w\s\d*’,‘s 11111’)
ret = re.match(‘a[1-9]s’,‘a2s’) #[ ] 内可按照ascll码表的排序范围取值
#一个[ ] 内只能匹配一个值
ret = re.match(‘a[\w]s’,‘a2s’) # [ ] 内可以放 \w, \s, \d
print(ret.group())
4.原始字符串
Python中字符串前加上r 表示原生字符串。
例:
import re

mm = re.match(’\\’,’\’) #‘\’表示转义字符
mm = re.match(r’\’,’\’) # 加 r 后 使‘\’按原样进行匹配

print(mm.group())

5.表示数量(匹配多个字符的相关个数)

  • :匹配前一个符号0个或多个
  • :匹配前一个符号1个或多个
    ?: 匹配前一个字符0个或一个。
    {m} :匹配前一个字符出现m次
    {m,} :匹配前一个符号至少出现m次
    {m,n} :匹配前一个符号出现次数范围(m,n)
    例:
    import re

ret = re.match(’[a-zA-Z0-9_]{6}’,‘12a3g45678’)
ret = re.match(’[a-zA-Z0-9_]{5,8}’,‘12a3g45s_d67645’)
#被搜索的字符串 按能满足的最大次数取,不足最小次数报错 多则截取

print(ret.group())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值