python-正则表达式-正则函数

ernestwang 887 0

正则函数

  • 正则切割
    import re
    
    # re.split()
    
    c = re.compile(r'\d')
    
    # 正则切割
    s = c.split('正则其实不难1但是学完之后2发现什么也写不出来3是这样吧')
    
    print(s)
    
    '''
    # s = '正则其实不难 但是学完之后 发现什么也写不出来 是这样吧'
    s = '正则其实不难1但是学完之后2发现什么也写不出来3是这样吧'
    ret = s.split()
    print(ret)
    '''
  • 正则替换
    import re
    
    c = re.compile(r'\d')
    
    s = 'If1you2do3not4leave5me6I7will8by9your8side7until6the5life4end'
    
    # 指定替换,可以指定替换次数
    ret = c.sub(' ', s, 3)
    
    # print(ret)
    
    # 干预替换过程
    def tihuan(m):
        # m表示匹配到的内容,一处匹配调用一次
        # print(m.group())
        return '*'
    
    ret2 = c.sub(tihuan, s)
    # print(ret2)
    
    def double(m):
        return m.group() * 2
    ret3 = c.sub(double, s)
    # print(ret3)
    
    # 传递一个函数后,可以人为的干预替换的过程
    ret4 = re.sub(r'\d', lambda m: str(int(m.group()) * 2), s)
    print(ret4)

正则转义

  • 示例:
    import re
    
    '''
    python  \d      \\d     \\\d    \\\\d   r'\\d'
    re      \d      \d      \\d     \\d     \\d
    匹配     数字    数字     \d      \d      \d
    '''
    
    # 建议前面添加字符'r'
    c = re.compile(r'\\d')
    
    s = c.search('hello\dworld')
    
    if s:
        print(s.group())
  • 说明:
    • 匹配正则语法中的特殊字符都需要进行转义
    • 建议书写正则表达式字符串时前面添加r,可以省去python中对字符串的解析

练习:

  • 匹配手机号
  • 匹配邮箱
  • 匹配URL(http://www.baidu.com:80/index.html?id=3&page=5
  • 匹配IP地址
  • 把下划线命名(也叫蛇形命名,所有单词都是小写,中间通过下划线连接),转化为小驼峰命名法(第一个单词小写,其余所有单词首字母大写)。例如'go_to_next_page',转化后改写为'goToNextPage'。要求:用正则表达式替换

标签: 正则表达式 python

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~

复制成功
微信号: irenyuwang
关注微信公众号,站长免费提供流量增长方案。
我知道了