python--正则表达式


1、导入模块
    import re
    match方法是从起始位置开始匹配
    ret = re.match(r"正则表达式", "匹配的字符")
    匹配上则有返回值,返回一个对象,匹配不上则没返回
    ret.group()
    取到匹配到的数据


2、匹配单个字符:
    1、匹配任意数字 \d  \D 匹配非字符
    2、匹配任意一个 []   连续可以写成[1-8]  两段连续可以写成[1-36-9]1到3,6到9  也可以写成[1-3a-e]
    3、\w 匹配任意单词字符,除过=-等等,慎用,范围太广  \W 匹配非单词字符
    4、\s 匹配一个空格  \S匹配非空格
    5、.匹配任意一个字符 除了\n   加参数re.S则可以匹配\n

3、匹配多个字符

    1、{}匹配前一个字符出现的次数    \d{1,3} 表示数字位数可以有1到3位   \d{11}表示只能有11位  a{1}  a只能出现一次 
    2、?匹配前一个字符出现一次或者没有出现  要么有要么没有
    3、*匹配前一个字符可以出现0次,1次,多次,可有可无
    4、+匹配前一个字符至少出现一次或者多次,至少有一次
    

4、匹配开头结尾
    1、^匹配字符串开头
    2、$匹配字符串结尾


5、匹配分组
    1、| 匹配左右任意一个表达式
    2、()将括号中的字符作为一个分组  需要取值的时候可以用group(1) 第一个括号是1,以此类推
        如需要第一个括号中的值与其相当可以写成:
        re.match("<(\w*)>.*</\1>", <h1>hahahha</h1>)

6、匹配出文章阅读的次数
    re.search(r"\d+", "阅读次数为9999")。group()

    "9999"   只能取到第一个匹配的数值


    re.findall(r"\d+", "python=199, java=433, js=3333")
    直接返回一个数组   [199, 433, 3333]

7、将匹配到的字符进行替换
    
    re.sub(r"\d+" "988", "python = 997   java = 1002 ")    
    直接返回被替换后的数据  全部替换  “python = 998 java = 998”


    def add(temp):

    strNum = temp.group()
    num = int(strNum) +1
    return str(num)

ret = re.sub(r"\d+", add, "点击次数为997次")

print(ret)

结果  点击次数为998次


8、split根据匹配进行切割字符串

ret = re.split(r":| ", "info:xiaozhang 33 shandong")
print(ret)
结果:["info", "xiaozhang", "33", "shandong"]

 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值