当前位置: 首页 > article >正文

Python3 【正则表达式】水平考试:精选试题和答案

Python3 【正则表达式】水平考试:精选试题和答案


试卷说明

本试卷包含:选择题15 道、填空题10 道和 编程题5 道,总分 100 分。每道题后附有答案和解析。


选择题(每题 2 分,共 30 分)

  1. 以下哪个正则表达式可以匹配任意数字?

    • A. \d
    • B. \D
    • C. \w
    • D. \s
      答案:A
      解析\d 匹配任意数字,\D 匹配非数字,\w 匹配字母、数字或下划线,\s 匹配空白字符。
  2. 以下哪个正则表达式可以匹配一个或多个字母?

    • A. [a-z]
    • B. [a-z]+
    • C. [a-z]*
    • D. [a-z]?
      答案:B
      解析+ 表示前面的字符至少出现一次。
  3. 以下哪个正则表达式可以匹配字符串的开头?

    • A. $
    • B. ^
    • C. \b
    • D. \B
      答案:B
      解析^ 匹配字符串的开头,$ 匹配字符串的结尾。
  4. 以下哪个正则表达式可以匹配一个单词边界?

    • A. \b
    • B. \B
    • C. ^
    • D. $
      答案:A
      解析\b 匹配单词边界,\B 匹配非单词边界。
  5. 以下哪个正则表达式可以匹配一个浮点数?

    • A. \d+\.\d+
    • B. \d*\.\d*
    • C. \d+\.\d*
    • D. \d*\.\d+
      答案:A
      解析\d+\.\d+ 匹配至少一个数字,后跟一个小数点,再跟至少一个数字。
  6. 以下哪个正则表达式可以匹配一个邮箱地址?

    • A. [a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+
    • B. [a-zA-Z0-9]+@[a-zA-Z0-9]+
    • C. [a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+
    • D. [a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.
      答案:A
      解析:邮箱地址的格式为 用户名@域名.顶级域名
  7. 以下哪个正则表达式可以匹配一个 URL?

    • A. https?://\S+
    • B. http://\S+
    • C. https://\S+
    • D. http://\S
      答案:A
      解析https? 匹配 httphttps\S+ 匹配非空白字符。
  8. 以下哪个正则表达式可以匹配一个 HTML 标签?

    • A. <.*>
    • B. <.*?>
    • C. <.+>
    • D. <.+?>
      答案:B
      解析<.*?> 使用非贪婪匹配,避免匹配过多内容。
  9. 以下哪个正则表达式可以匹配一个中文字符?

    • A. [\u4e00-\u9fff]
    • B. [a-zA-Z]
    • C. \d
    • D. \w
      答案:A
      解析[\u4e00-\u9fff] 是中文字符的 Unicode 范围。
  10. 以下哪个正则表达式可以匹配一个 IP 地址?

    • A. \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
    • B. \d{1,3}\.\d{1,3}\.\d{1,3}
    • C. \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
    • D. \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
      答案:A
      解析:IPv4 地址由 4 个 1 到 3 位的数字组成,用 . 分隔。
  11. 以下哪个正则表达式可以匹配一个日期(YYYY-MM-DD)?

    • A. \d{4}-\d{2}-\d{2}
    • B. \d{2}-\d{2}-\d{4}
    • C. \d{4}/\d{2}/\d{2}
    • D. \d{2}/\d{2}/\d{4}
      答案:A
      解析\d{4}-\d{2}-\d{2} 匹配 YYYY-MM-DD 格式的日期。
  12. 以下哪个正则表达式可以匹配一个时间(HH:MM:SS)?

    • A. \d{2}:\d{2}:\d{2}
    • B. \d{2}:\d{2}
    • C. \d{2}:\d{2}:\d{2}:\d{2}
    • D. \d{2}:\d{2}:\d{2}:\d{2}:\d{2}
      答案:A
      解析\d{2}:\d{2}:\d{2} 匹配 HH:MM:SS 格式的时间。
  13. 以下哪个正则表达式可以匹配一个十六进制颜色值?

    • A. #[A-Fa-f0-9]{6}
    • B. #[A-Fa-f0-9]{3}
    • C. #[A-Fa-f0-9]{6}|#[A-Fa-f0-9]{3}
    • D. #[A-Fa-f0-9]{6}|#[A-Fa-f0-9]{3}|#[A-Fa-f0-9]{2}
      答案:C
      解析:十六进制颜色值可以是 3 位或 6 位。
  14. 以下哪个正则表达式可以匹配一个文件名和扩展名?

    • A. \w+\.\w+
    • B. \w+\.\w
    • C. \w+\.\w{2,4}
    • D. \w+\.\w+\.\w+
      答案:A
      解析\w+\.\w+ 匹配文件名和扩展名。
  15. 以下哪个正则表达式可以匹配一个强密码(至少 8 位,包含大小写字母、数字和特殊字符)?

    • A. ^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[\W_]).{8,}$
    • B. ^(?=.*[A-Z])(?=.*[a-z])(?=.*\d).{8,}$
    • C. ^(?=.*[A-Z])(?=.*[a-z]).{8,}$
    • D. ^(?=.*[A-Z])(?=.*\d).{8,}$
      答案:A
      解析(?=.*[A-Z]) 确保至少有一个大写字母,(?=.*[a-z]) 确保至少有一个小写字母,(?=.*\d) 确保至少有一个数字,(?=.*[\W_]) 确保至少有一个特殊字符。

填空题(每题 3 分,共 30 分)

  1. 正则表达式 \d{3}-\d{2}-\d{4} 可以匹配的格式是:________。
    答案:XXX-XX-XXXX(例如:123-45-6789)

  2. 正则表达式 ^[A-Za-z]+$ 可以匹配的字符串是:________。
    答案:仅包含字母的字符串

  3. 正则表达式 \b\w+\b 可以匹配的字符串是:________。
    答案:一个完整的单词

  4. 正则表达式 \d{2}:\d{2}:\d{2} 可以匹配的格式是:________。
    答案:HH:MM:SS(例如:12:34:56)

  5. 正则表达式 [\u4e00-\u9fff]+ 可以匹配的字符串是:________。
    答案:中文字符

  6. 正则表达式 ^[a-zA-Z0-9_]{4,16}$ 可以匹配的字符串是:________。
    答案:4 到 16 位的用户名(字母、数字、下划线)

  7. 正则表达式 https?://\S+ 可以匹配的字符串是:________。
    答案:HTTP 或 HTTPS 协议的 URL

  8. 正则表达式 \d+\.\d+ 可以匹配的字符串是:________。
    答案:浮点数(例如:3.14)

  9. 正则表达式 ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ 可以匹配的字符串是:________。
    答案:十六进制颜色值(例如:#FFFFFF 或 #FFF)

  10. 正则表达式 ^(\d{4})-(\d{2})-(\d{2})$ 可以匹配的格式是:________。
    答案:YYYY-MM-DD(例如:2023-10-05)


编程题(每题 8 分,共 40 分)

  1. 编写一个正则表达式,匹配一个合法的邮箱地址。
    答案:

    import re
    pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
    emails = ["test@example.com", "invalid-email@com"]
    for email in emails:
        if re.match(pattern, email):
            print(f"Valid: {email}")
        else:
            print(f"Invalid: {email}")
    
  2. 编写一个正则表达式,匹配一个合法的手机号码(中国大陆)。
    答案:

    import re
    pattern = r'^1[3-9]\d{9}$'
    phones = ["13800138000", "12345678901"]
    for phone in phones:
        if re.match(pattern, phone):
            print(f"Valid: {phone}")
        else:
            print(f"Invalid: {phone}")
    
  3. 编写一个正则表达式,匹配一个合法的 URL。
    答案:

    import re
    pattern = r'https?://(?:www\.)?\S+'
    urls = ["https://www.example.com", "ftp://example.com"]
    for url in urls:
        if re.match(pattern, url):
            print(f"Valid: {url}")
        else:
            print(f"Invalid: {url}")
    
  4. 编写一个正则表达式,匹配一个合法的日期(YYYY-MM-DD)。
    答案:

    import re
    pattern = r'^\d{4}-\d{2}-\d{2}$'
    dates = ["2023-10-05", "2023/10/05"]
    for date in dates:
        if re.match(pattern, date):
            print(f"Valid: {date}")
        else:
            print(f"Invalid: {date}")
    
  5. 编写一个正则表达式,匹配一个合法的强密码(至少 8 位,包含大小写字母、数字和特殊字符)。
    答案:

    import re
    pattern = r'^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[\W_]).{8,}$'
    passwords = ["Password123!", "weakpass"]
    for pwd in passwords:
        if re.match(pattern, pwd):
            print(f"Strong: {pwd}")
        else:
            print(f"Weak: {pwd}")
    

总分:100 分

  • 选择题:15 题 × 2 分 = 30 分
  • 填空题:10 题 × 3 分 = 30 分
  • 编程题:5 题 × 8 分 = 40 分

http://www.kler.cn/a/523077.html

相关文章:

  • 【Rust自学】15.7. 循环引用导致内存泄漏
  • docker 学习笔记
  • 计算机网络__基础知识问答
  • 关于使用Mybatis-plus的TableNameHandler动态表名处理器实现分表业务的详细介绍
  • 如果我想设计一款复古风格的壁纸,应该选什么颜色?
  • Pandas DataFrame 拼接、合并和关联
  • 汽车制造案例 | 搭建车间现场数字可视化管理方案(附解决模板)
  • VMware 和本机(Win10)安装共享文件
  • 2025数学建模美赛|赛题翻译|C题
  • Linux探秘坊-------5.git
  • Linux生产者消费者模型
  • .NET Core缓存
  • TCP是怎么判断丢包的?
  • 用WinForm如何制作简易计算器
  • C# lock使用详解
  • 天猫超市卡绑卡 分析
  • 启元世界(Inspir.ai)技术浅析(二):深度强化学习
  • Kotlin 2.1.0 入门教程(九)
  • 智能调度体系与自动驾驶技术优化运输配送效率的研究——兼论开源AI智能名片2+1链动模式S2B2C商城小程序的应用潜力
  • 基于微信小程序的4S店客户管理系统设计与实现(LW+源码+讲解)
  • 学习资料收藏 游戏开发
  • Node.js基础
  • 解决Gradle引入依赖时报错 Caused by: java.io.FileNotFoundException问题
  • CTF-web: YAML是什么
  • 元宇宙与Facebook:社交互动的未来方向
  • Jetpack架构组件学习——使用Glance实现桌面小组件