Python面试必考重点之字符串与正则表达式第九关——正则表达式分组的使用

187 阅读2分钟

「这是我参与2022首次更文挑战的第25天,活动详情查看:2022首次更文挑战」。

面试题第九关:

第一部分——考点:

  • 正则表达式分组的使用

第二部分——面试题:

1.面试题一:如何搜索字符串中包含区号和分机号的第一个出现的电话号,并提取电话号中的区号,电话号和分机号,要求:

  1. 区号固定是三位数字
  2. 电话号至少是七位数字
  3. 分机号至少是三位数字
  4. 区号,电话号和分机号之间用连字符分隔 电话号案例:024-12345678-3456

第三部分——解析:

import re

m = re.search('(\d{3})-(\d{7,})-(\d{3,})', '我的公司座机是:024-12345678-3456')

if m is not None:
    print(m.groups())  # 元组形式显示
    print(m.groups()[0])  # 区号
    print(m.groups()[1])  # 电话号
    print(m.groups()[2])  # 分机号

在这里插入图片描述


第四部分——知识点补给站:

正则表达式中的三组括号把匹配结果分成三组:

  •  m.groups()所有匹配的字符(即匹配正则表达式整体结果);
  •  groups()[0] 列出第一个括号匹配部分,groups()[1] 列出第二个括号匹配部分,groups()[2] 列出第三个括号匹配部分;
  • m.groups() 返回所有括号匹配的字符,以tuple格式。是可以直接解包的哦~

🔆In The End!

👑有关于Me

个人简介:我是一个硬件出身的计算机爱好者,喜欢program,源于热爱,乐于分享技术与所见所闻所感所得。文章涉及Python,C,单片机,HTML/CSS/JavaScript及算法,数据结构等。

从现在做起,坚持下去,一天进步一小点,不久的将来,你会感谢曾经努力的你!

认真仔细看完本文的小伙伴们,可以点赞收藏并评论出你们的读后感。并可关注本博主,在今后的日子里阅读更多技术文哦~

如有错误或者言语不恰当的地方可在评论区指出,谢谢!
如转载此文请联系我征得本人同意,并标注出处及本博主名,谢谢 !