Day14-正则表达式

一、认识正则表达式

1. 什么是正则表达式 - 一种可以让复杂的字符串问题变得简单的工具

1)案例1: 判断输入的内容是否是一个合法的手机号码
要求: a. 长度11位 b.全部都是数字字符 c.第一位是1 d. 第二位:3~9

tel = ‘783243822’

方法1:不使用正则

if len(tel)  == 11:
    if tel[0]  == '1' and tel[1] in '3456789':
        flag = True
        for x in tel[2:]:
            if not '0' <= x <= '9':
                flag = False
                break
        if flag:
            print('合法')
        else:
            print('不合法')
    else:
        print('不合法')
else:
    print('不合法')

方法2:使用正则表达式

from re import fullmatch
result = fullmatch(r'1[3-9]\d{9}', tel)
if result:
    print('合法')
else:
    print('不合法')

2)案例2: 提取字符串中所有的数字字串
message = ‘年龄:18岁, 身高:179, 体重:120斤, 月薪:3000元, 房租:1000元’
[‘18’, ‘170’, ‘120’, ‘3000’, ‘1000’]

方法1: 不使用正则

result = []
str1 = ''
for x in message:
    if '0' <= x <= '9':
        str1 += x
    else:
        if str1:
            result.append(str1)
        str1 = ''
if str1:
    result.append(str1)
print(result)

方法2:使用正则

from re import findall
result = findall(r'\d+', message)    #\d+ 连续出现的数字
print(result)

二、匹配类符号

from re import fullmatch

1. fullmatch函数

fullmatch(正则表达式, 字符串) - 判断字符串是否满足正则表达式描述的规则,如果不满足,结果就是None
不管使用正则表达式解决什么样的字符串问题,写正则的时候都是在描述字符串规则

2. 所有匹配类符号

1) 普通符号 - 在正则表达式中表示本身的字符就是普通符号

result = fullmatch(r'abc','abc')
print(result)

2) . - 匹配任意一个字符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值