正则表达式(入门简单易懂)

正则表达式

应用场景

  • 特定规律字符串的查找,切割、替换等
  • 特定格式(邮箱、手机号、IP、URL等)的校验
  • 爬虫项目中,提取特定内容

使用原则

  • 只要使用字符串函数能够解决的问题就不要使用正则
  • 正则的效率比较低,同时会降低代码的可读性
  • 世界上最难理解的三样东西:医生的处方、道士的神符、码农的正则
  • 提醒:正则是用来写的,不是用来读的;在不清楚功能的情况下,不要阅读别人的正则

基本使用

  • 说明:正则的解析不是我们来做的,需要借助re模块
  • 相关函数:
    • match:只从开头进行匹配,匹配到就返回结果对象,没有找到返回None

    • search:从任意位置匹配,功能同上,都是单次匹配(找到就停)
      m = re.search(‘abc’, ‘hadajabcadjlae’)

      if m:
      # 返回匹配的内容
      print(m.group())
      # 返回匹配内容的位置
      print(m.span())

    • findall:全部匹配,返回所有匹配的到结果列表,没有找到返回空列表
      f = re.findall(‘abcd’, ‘abcasjdlaabcaksjd;abcasdjla’)
      print(f)

    • compile:创建正则表达式对象,可以让创建正则对象和内容匹配分开操作
      可以先生成正则表达式对象,然后再进行匹配
      c = re.compile(‘cba’)
      print(type©)

      从开头匹配
      m = c.match(‘cbasdhaj;acbaalsdk’)
      从任意位置匹配
      m = c.search(‘casdhaj;acbaalsdk’)

      if m:
      print(m.group())

      匹配所有
      f = c.findall(‘ahkjdcbasdkjalcbasakldjacba’)
      print(f)
      此方式可以分开操作,比较灵活

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值