立即学习:https://edu.csdn.net/course/play/6861/335840?utm_source=blogtoedu
英文状态中中括号[]
指代字符集合,当需要特定的字符串匹配时们可以选择中括号
#提取用户的手机号
import re
s4 = ‘用户的联系方式:12345679876’,用户的编号为112355464’
re.findall('1[356789]\d\d\d\d\d\d\d\d\d',s4)
#提取出动力总成
import re
s5 = '通过对比新朗逸1.5L和1.5T两种动力在1.5年行时候的数据,发现1.5T的口碑比较好!'
re.findall('1.5[a-zA-Z]',s4)
英文状态下的()
指代特定内容的截取(抠取)
#提取出用户的年龄
import re
s6=‘id:1,name:tom,age:3,gender:1,name:lily,age:5,gender:0’
re.findall('\d',s6)
re.findall('age:\d',s6)
re.findall('age:(\d'),s6)
英文状态下的问号?
表示匹配前一个字符0次或者1次
#超级链接匹配
URL ='https://www.baidu.com/'
URL = 'www.gov.com.cn'
pattern = 'https?://www\..*?'
加号 +
表示匹配前一个字符一次以及以上
#邮箱地址的匹配
email1 = ‘lixing#163.com’
email2 = ‘[email protected]’
pattern = '[-=0-9a-zA-Z_\.\-]+@[a-zA-Z0-9]+\.com'
星号*
表示匹配前一个字符0次以及以上
#提取出产品名称中包含的奶粉字样的产品
import re
prod =['婴儿袜',‘亨氏奶粉’,'奶粉勺','多功能奶瓶',‘幼儿奶粉量筒’,‘’磨牙棒]
res = []
for i in prod
res.extend(re.findall('.*奶粉.*',i))
print(res)
英文中的大括号{}
表示匹配当前一个字符特定的次数或者范围
{m} 匹配前一个字符m次
{m,}匹配前一个字符至少m次
{,m}匹配前一个字符最多m次
{m,n} 匹配前一个字符m-n次
#手机号匹配
pattern = ‘1[3456789]\d{9}’
#至少6个长度的密码
pattern = '\w{6,}'
#区号信息
pattern = ‘0\d{2,3}’
九个符号掌握后正则表达式就没有问题了
元字符 、 句号点 、反斜杠转义符、[ ]、()、?、+、*、{}