正则表达式:正则函数-正则转义

    Python编程 wuya 102次浏览 已收录 0个评论

    正则函数

    • re.match、re.search、re.findall、re.compile
    • 正则切割
      import re
      
      # string = '正则其实不难,但是学完之后,发现什么也写不出来,是这样吧'
      # print(string.split(','))
      
      c = re.compile(r'\d')
      string = '正则其实不难1但是学完之后2发现什么也写不出来3是这样吧'
      # 按照正则进行切割
      print(c.split(string))
      
      # 独立方式
      # print(re.split(r'\d', string))
    • 正则替换
      • 示例1:
      import re
      
      # s = 'If you do not leave me I will by your side until the life end'
      # print(s.replace(' ', '*'))
      
      s = 'If1you2do3not4leave5me6I7will8by9your0side1until3the5life7end'
      
      # 正则替换,可以指定次数
      s2 = re.sub(r'\d', ' ', s, 2)
      # 功能同上,返回一个元组 (替换结果,替换次数)
      # s2 = re.subn(r'\d', ' ', s)
      
      print(s2)
      • 示例2:
      import re
      
      s = 'If1you2do3not4leave5me6I7will8by9your0side1until3the5life7end'
      
      '''
      def tihuan(m):
          # 每次匹配都会调用一次,m就是匹配结果对象
          return m.group() * 2
      s2 = re.sub(r'\d', tihuan, s)
      '''
      # 替换目标字符换成函数:可以人为干预替换过程
      s2 = re.sub(r'\d', lambda m: str(int(m.group())*2), s)
      print(s2)

    正则转义

    • 示例:
      import re
      
      '''
      python: \d      \\d     \\\d    \\\\d   r'\\d'
      re:     \d      \d      \\d     \\d     \\d
      匹配:   数字     数字     \d      \d      \d
      '''
      # 建议:写正则时前面添加 r 
      s = re.search(r'\\d', 'hello\dworld')
      
      if s:
          print(s.group())
    • 说明:
      • 匹配正则语法中的字符都需要进行转义
      • 书写正则时建议前面添加r,可以避免python对字符串的转义处理

    练习:

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

    学海无涯 , 版权所有丨如未注明 , 均为原创丨转载请注明正则表达式:正则函数-正则转义
    喜欢 (0)
    发表我的评论
    取消评论
    表情 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址