Python re模块 (正则表达式)

正则元字符

元字符描述正则表示示例
|逻辑或foo|bar  匹配foo或者bar
.任意字符(\n除外)b.b      
^字符串起始部分(开头)^bob   以bob开头的字符串
$字符串起始部分(结尾)bob$   以bob结尾的字符串
+前导符,前面字符出现一次或多次[a-z]+\.com    a-z字母加.com
*前导符,前面字符出现0次或多次[0-9]*   ,出现任意数量的数字
前导符,前面字符出现1次或0次[a-z]?   出现一个字母或不出现
{n}前导符,前面字符出现n次[a-z]{n},前面出现多个字符
{n,m}前导符,前面字符最少出现n次,最多m次[a-z]{6,9} ,单个字母,最少出现6次,最多9次
[]范围内的任意一个字符[abdg] 括号中字符的任意一个
[a-zA-Z0-9]范围内任一一个字符 
(*|+|?|{})?非贪婪匹配 
()匹配封闭的正则表达式,然后存为组 
\d十进制数字0-9  \D 取反data\d+.txt
\w 字母和数字。类似于[a-zA-Z0-9],\W取反[a-zA-Z]\w+
\s空格   \S取反of\sthe   匹配of the
\b词边界   \B取反\bthe\b 匹配the单词
   

其中注意:

\d    表示十进制数字0-9                            (\D) 取反
\w    表示全部字母和数字,相当于[a-zA-Z0-9]   (\W)取反
\s    表示空格

Python  re正则模块
group()   要么返回整个匹配对象,要么根据要求返回特定的子组
groups()  则仅仅返回一个包含唯一或全部子组的元祖,如果没有子组的要求,那么返回一个空元祖
match()   匹配成功,则返回一个匹配对象,如果失败,返回一个None

re模块中基本功能:
一、查找
1、findall  匹配所有中每一项符合的结果都会放到列表中作为一个元素
    用法:re.findall(正则,带匹配字符串,flag)
    res = re.findall('\d+','我今年快20岁了,但是身高不到180里面')
        print(res)
    #返回列表['20','80']
2、search 只匹配符合条件的从左到右的第一个,得到是一个变量。通过这个变量的group方法来获取结果如果没有匹配到,则返回None,group方法会报错
    var = '我今年快20岁了,但是身高不到180里面'
    res = re.findall('\d+',var)
    print(res)
    #
    #返回列表['20','80']
    res1 = re.search('\d+',var)
    res2 = re.search('_',var)
    print(res1.group())   #得到20,注意要通过group方法来获取结果
    # print(res2.group())   #会报错
3、match  从头开始匹配,相当于在search中加上一个 '^'
    res3 = re.match('\d+',var)
    res4 = re.match('\d+','20岁了我,身高却不到183')
    print(res3)         #返回none
    print(res4.group())  #返回20
二、字符串处理 (切割和替换)
1、split   切割
    var = '我今年快20岁了,但是身高不到180里面'
    res = re.split('\d+',var)
    print(res)   #得到['我今年快', '岁了,但是身高不到', '里面']
2、sub 替换 (正则,‘替换成新字符’,替换次数(默认全部替换))
    var = '我今年快20岁了,但是身高不到180里面'
    res = re.sub('\d+','uzi',var)
    print(res)   #我今年快uzi岁了,但是身高不到uzi里面

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值