python开发学习笔记(7)————正则表达式

正则表达式

1.基本概念

在一个文本中,快速匹配到想要的内容

2.re模块
1)使用过程

#导入
import re
#使用match方法进行匹配操作

result = re.match(正则表达式,要匹配的字符串)

如,re.match(r”hello”, “hello world”)
#如果上一步匹配到数据的话,可以使用group方法来提取数据

result.group()
2)匹配单个字符
.  匹配任意1个字符(除了\n,匹配范围最广
[]  匹配[]内的字符,只能匹配一个字符
\d  匹配数字,0-9
\D  匹配非数字,即不是数字
\s  匹配空白,即空格,tab键
\S  匹配非空白
\w  匹配单词字符,即a-z,A-Z,0-9,_,也支持中文匹配
\W  匹配非单词字符
3)匹配多个字符

{} 大括号里的内容可以规定前面紧邻的匹配符要匹配内容的位数
\d{1,3} 匹配数字,匹配的数字是1位,2位或3位
\d{11} 匹配一个11位数
规则:

 *  匹配前一个字符出现0次或者无限次,即可有可无
 +  匹配前一个字符出现1次或者无限次,即至少1次
 ?  匹配前一个字符出现1次或者0次,即要么有1次,要么没有
 {m} 匹配前一个字符出现m次
 {m,n}  匹配前一个字符出现从m到n次

match()函数最后一个参数传入re.S,可以使 . 匹配到\n

4)匹配开头结尾

r”[a-zA-Z_][a-zA-Z0-9_]*$” 正则表达式中最后加入$表示匹配到字符串的最后一位。
正则表达式以 ^ 表示开头,以 $ 表示结尾
匹配163邮箱地址

^[a-zA-Z0-9_]{4,20}@163\.com$

如果在正则表达式中需要用到某些普通的字符,比如点. 或者? 可以使用\来转义

5)分组等
^[a-zA-Z0-9_]{4,20}@(163|126)\.com$

|是或者关系,在需要判断或者关系的地方加上括号
在正则表达式中,用小括号括住正则表达式,group(1)可以返回第一个小括号的值,group(2)可以返回第二个小括号的值。
语法

|  匹配左右任意一个表达式
(ab)  将括号中字符作为一个分组
\num  引用分组num匹配到的字符串  如,\1 与第一个小括号匹配的内容相同
(?P<name>)  分组起别名
(?P=name)  引用别名为name分组匹配到的字符串
3.re模块高级用法
1)search

直接返回要匹配的字符,只返回第一个匹配的字符串

2)findall

返回匹配到的符合条件的全部字符串

3)sub 将匹配到的数据替换
re.sub(r”\d+”, ‘998’, “python = 997”)
输出结果:’python = 998’

sub满足函数调用
第二个参数是要替换的数据,这个参数可以传入函数

4)split
ret = re.split(r”:| “, “info:xiaoZhang 33 shangdong”)
print(ret)

运行结果:
[‘info’, ‘xiaoZhang’, ‘33’, ‘shangdong’]
以冒号或者空格进行切割

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值