python学习

re模块

正则表达式

作用:主要用于数据的查找与筛选
需求
编写代码校验用户输入的手机号是否合法

# num= input('请输入您的手机号>>>:').strip()
# if num.isdigit():
#     if len(num) == 11:
#         if num.startswith('13') or num.startswith('15')or
#             num.startswith('18')or num.startswith('19')
#             num = int(num)
#             print('手机号正确')
#         else:
#             print('手机号开头不对')
#     else:
#         print('手机号不是11位')
# else:
#     print('手机号不是数字')
#正则表达式
import re
num= input('请输入您的手机号>>>:').strip()
if re.match('^[13|15|17|18|19][0-9]{9}',num):
            print(num)
else:
    print('输入不正确')
^
#匹配字符串的开始
[0-9]#数字是0到9之间
{9}#除去除的开头数字还有9位数。一共11位数

官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式之特殊符号

字符

元字符匹配内容
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线
\W匹配非字母或数字或下划线
\d匹配数字
()匹配括号内的表达式,也表示一个组
\n匹配一个换行符
\b匹配一个单词的结尾
\D匹配非数字
^匹配字符串的开始
$匹配字符串的结尾

量词

量词用法说明
*重复零次或更多次((默认就是尽可能多)
+重复一次或更多次(默认就是尽可能多)
?重复零次或一次(默认就是一次)
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

正则表达式练习

正则待匹配字符匹配结果
海.海燕海娇海东海燕海娇海东(匹配所有"海."的字符)
^海.海燕海娇海东海燕(只从开头匹配"海.")
海.$海燕海娇海东海东(只匹配结尾的"海.$")
李.?李杰和李莲英和李二棍子李杰 李莲 李二(?表示重复零次或一次,即只匹配"李"后面一个任意字符)
李.*李杰和李莲英和李二棍子李杰和李莲英和李二棍子(*表示重复零次或多次,即匹配"李"后面0或多个任意字符)
李.+李杰和李莲英和李二棍子李杰和李莲英和李二棍子(+表示重复一次或多次,即只匹配"李"后面1个或多个任意字符)
李.{1,2}李杰和李莲英和李二棍子李杰和 李莲英 李二棍({1,2}匹配1到2次任意字符)
李.*?李杰和李莲英和李二棍子李 李 李 (惰性匹配)
[\d]456bdha34 5 6 3 (表示匹配任意一个数字,匹配到4个结果)
[\d]+456bdha3456 3 (表示匹配任意个数字,匹配到2个结果)

贪婪匹配与非贪婪匹配

待匹配的文本:
“”"
所有的量词默认都是贪婪匹配 但是如果在量词的后面紧跟一个问号
那么就会变成非贪婪匹配
小技巧:以后我们在使用贪婪匹配或者非贪婪匹配的时候一般都是用.或者.?
并且结束的标志有上述符号左右两边添加的表达式决定
“”"

转义符

正则表达式中取消斜杠与字母的特殊含义 就是在斜杠前面加斜杠
\n \n
\\n \n
在python中有更加简便的写法
r’\n’
r’\n’

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值