【MK】Python全栈 阶段一:习题汇总 十一:正则表达式

本文是Python全栈学习阶段一的正则表达式习题汇总,涵盖了单选题、多选题和编程题。内容包括正则表达式的使用方式、量词符号、组的运用,以及实际编程应用,如防止并发操作、登录体系优化等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权声明:本文为博主原创文章,未经博主允许不得转载。



一、单选题

1.如下:( )
在这里插入图片描述
在这里插入图片描述

A. "$%^&*@#~!"
B. "$%^&*@#~!"
C. "$%^&*@#~!".
D. "$%^&*@#~!".

2.已知圆周率 π=3.1415 9265 3589 7932 3846 ,请注意,小数点后每四位一组,每组间有一个空格,现要求匹配结果为 3.1415 9265 3589 ,下列选项正确的是()
在这里插入图片描述

num='3.1415 9265 3589 7932 3846'
print(re.findall('^[3].(\d{1,4}\s){2}', num))
print(re.findall('^[3]\.(\d{1,4}\s){3}', num))
print(re.findall('3.(\d{1,4}){2}', num))
# print(re.findall('^[3].({1,4}\s){2}', num))

3.下列有关正则表达式: \d{4}\s+\d{3,9},描述不正确的是()
在这里插入图片描述

4.有关贪婪模式和非贪婪模式的描述,下列选项正确的是( C

  • A .贪婪模式是在整个表达式匹配成功的前提下,尽可能少的匹配 【尽可能多的匹配】
  • B .非贪婪模式是在整个表达式匹配成功的前提下,尽可能多的匹配 【尽可能少的匹配】
  • C .非贪婪模式是在整个表达式匹配成功的前提下,以最少的匹配字符
  • D .默认是非贪婪模式 【默认贪婪模式】

5.下列关于 findall() 的定义,描述正确的是( A

  • A .查找字符串中所有(非重复出现)的正则表达式模式并返回一个匹配列表
  • B .查找字符串中所有(非重复出现)的正则表达式模式并返回一个匹配元组
  • C .查找字符串中的正则表达式模式,匹配成功则立刻以列表形式返回
  • D .查找字符串中的正则表达式模式,匹配成功则立刻以元组形式返回

6.下图所示代码的打印结果为:[‘p’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’],请根据以上结果在红色方框内填上填写正确代码,使程序正常执行(D

import re

content = '012p34yt_8h30o6n'
pattern = re.compile('[a-z]')
res = pattern.findall(content)
print(res)

在这里插入图片描述

# 执行结果:
A. []
B. ['0', '1', '2', 'p', '3', '4', 'y', 't', '_', '8', 'h', '3', '0', 'o', '6', 'n']
C. 
D. ['p', 'y', 't', 'h', 'o', 'n']

7.正则表达式中,关于 search( ) 方法,下列描述正确的是( B

  • A .扫描整个字符串,匹配成功,返回匹配的字符串
  • B .扫描整个字符串,匹配成功,返回匹配对象
  • C .re.search()方法要求必须从字符串的起始位置进行匹配
  • D .re.search()匹配失败,返回空字符串 【None】

8.下列关于 group( ) 方法,描述正确的是()

  • A .group(num)用于对匹配成功的返回值进行分组,从而使匹配结果进一步的
  • B .group(num)未传入num参数时用于返回整个的匹配对象,若未匹配成功,个空元组
  • C .group(num)未传入num参数时用于返回整个的匹配对象,当传入num参数回值为特定分组
  • D .group(num)用于对匹配成功返回的所有子组进行再分组,从而使匹配结果的过滤

9.根据下面代码,推断其执行结果正确的一项是( A

import re
my_con = 'Python is a good programming language.'
pattern = re.compile('Python')
res = pattern.search(my_con)
if res:
    print(res.group())
  • A .Python
  • B .Python is a good programming language.
  • C .( )
  • D .(Python,)

10.根据下面代码,请在认真阅读完代码后,选择其执行结果正确的一项( D

import re
my_str = '185ip2h30o5s9i7k01'
pattern = re.compile('[a-z]+')
result = pattern.split(my_str)
print(result)
  • A .(‘ip’, ‘h’, ‘o’, ‘s’, ‘i’, ‘k’)
  • B . [‘ip’, ‘h’, ‘o’, ‘s’, ‘i’, ‘k’]
  • C .(‘185’, ‘2’, ‘30’, ‘5’, ‘9’, ‘7’, ‘01’)
  • D . [‘185’, ‘2’, ‘30’, ‘5’, ‘9’, ‘7’, ‘01’]

二、多选题

1.关于正则表达式的匹配,下列正确的是( C D )(选两项)

  • A .匹配纯18位数字的身份证号码:\D{18} 【\d{18}】
  • B .以字母开头,有数字和下划线组成的长度为9-17的用户名:^ [a-zA-Z]\w{ 【】
  • C .匹配5-12位qq号:[0-9]\d{4,11} 【√】
  • D .11位的电话号码:1[3-9]\d{9} 【√】

三、练习题

3.1 正则表达式的使用

一、

import re

# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

InitialHeart2021

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值