Python正则表达式笔试真题(含详细答案解析)_第1页
Python正则表达式笔试真题(含详细答案解析)_第2页
Python正则表达式笔试真题(含详细答案解析)_第3页
Python正则表达式笔试真题(含详细答案解析)_第4页
Python正则表达式笔试真题(含详细答案解析)_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python正则表达式笔试真题(含详细答案解析)适用人群:Python初级开发、测试开发、后端工程师面试/笔试题型说明:选择题、填空题、简答题、编程实操题,题目贴合企业真实用工考核重点,覆盖正则基础语法、匹配规则、常用函数、场景化实战用法工具环境:Python3.x内置re模块,无需第三方库一、单项选择题(共5题,每题4分,共20分)1.Python中re模块用来匹配字符串开头的元字符是?()A.$

B.^

C..

D.*答案:B解析:^匹配字符串开头,$匹配字符串结尾;.匹配任意单个字符(除换行符);*匹配前一个字符0次或多次。2.正则表达式\d的含义是?()A.匹配任意字母

B.匹配任意数字

C.匹配任意空白字符

D.匹配任意非数字字符答案:B解析:\d匹配0-9任意数字;\w匹配字母、数字、下划线;\s匹配空白字符;\D匹配非数字字符。3.以下哪个符号可以匹配前一个字符出现1次或多次?()A.?

B.+

C.*

D.{0,}答案:B解析:+等价于{1,},匹配前一个字符1次或多次;?是0次或1次;*是0次或多次。4.re.match()函数的匹配特点是?()A.匹配字符串任意位置

B.仅从字符串开头开始匹配

C.匹配字符串结尾

D.全局匹配所有符合规则的内容答案:B解析:re.match()只校验字符串开头是否符合规则;re.search()匹配字符串任意位置第一个符合规则的内容;re.findall()全局匹配所有内容。5.正则表达式.*?代表的匹配模式是?()A.贪婪匹配

B.非贪婪匹配

C.精准匹配

D.无匹配意义答案:B解析:默认*、+、{}都是贪婪匹配(尽可能多匹配),后缀?可开启非贪婪匹配(尽可能少匹配),.*?是最常用的非贪婪匹配写法。二、填空题(共5题,每题4分,共20分)1.正则中匹配任意空白字符(空格、制表符、换行)的转义字符是______。答案:\s2.正则中匹配非空白字符的转义字符是______。答案:\S3.Python正则中,用来分组捕获内容的符号是______。答案:()4.匹配手机号(11位纯数字)的最简正则表达式是______。答案:\d{11}5.re模块中可以替换字符串中所有匹配内容的函数是______。答案:re.sub()三、简答题(共3题,每题10分,共30分)1.简述re.match()、re.search()、re.findall()三个函数的核心区别?答案解析:1.re.match(pattern,string):仅从字符串起始位置匹配,开头不满足规则直接返回None,只匹配第一个结果;2.re.search(pattern,string):遍历整个字符串,匹配第一个符合规则的内容,不限制开头;3.re.findall(pattern,string):全局遍历字符串,匹配所有符合规则的内容,返回匹配结果列表,无匹配则返回空列表。2.什么是正则贪婪匹配和非贪婪匹配?如何转换?答案解析:贪婪匹配:正则默认匹配规则,在满足条件的前提下,尽可能匹配最长的字符串,常用符号:*、+、{n,};非贪婪匹配:在满足条件的前提下,尽可能匹配最短的字符串;转换方式:在贪婪匹配符号后加?即可转为非贪婪匹配,例:.*→.*?、.+→.+?。3.正则中[]中括号的作用是什么?举例说明用法。答案解析:中括号用于定义字符集,匹配括号内的任意单个字符。常用示例:[0-9]:匹配任意数字,等价于\d;[a-z]:匹配任意小写字母;[A-Za-z]:匹配所有大小写字母;[^0-9]:括号内开头加^代表取反,匹配任意非数字字符。四、编程实操题(共3题,每题10分,共30分)实操1:提取字符串中所有数字需求:给定字符串text="订单号20260907,金额59.9元,数量10件",使用正则提取字符串中所有纯整数数字,过滤掉小数。参考答案代码:python

importre

text="订单号20260907,金额59.9元,数量10件"

#匹配连续整数,避免匹配小数中的数字

res=re.findall(r"\d+",text)

#过滤小数场景(排除带小数点的数字)

result=[numfornuminresif"."notinnum]

print(result)输出结果:['20260907','10']解析:\d+匹配连续多位数字,通过列表推导式过滤含小数点的数字,精准提取整数。实操2:验证手机号合法性需求:编写正则函数,判断输入的字符串是否为合法11位中国大陆手机号(纯11位数字)。参考答案代码:python

importre

defcheck_phone(phone):

#^开头$结尾严格限制11位数字

pattern=r"^\d{11}$"

ifre.match(pattern,phone):

returnTrue

returnFalse

#测试用例

print(check_phone())#True

print(check_phone("123456"))#False

print(check_phone("1380013800a"))#False解析:添加^和$严格限制字符串整体格式,避免“11位数字+其他字符”的错误匹配,{11}限定数字长度为11位。实操3:替换字符串中所有空格需求:给定含多种空白字符的字符串str1="Python正则笔试\t真题\n答案",使用正则将所有空格、制表符、换行符替换为空字符。参考答案代码:python

importre

str1="Python正则笔试\t真题\n答案"

#\s匹配所有空白字符

res=re.sub(r"\s","",str1)

print(res)输出结果:Python正则笔试真题答案解析:re.sub(匹配规则,替换内容,目标字符串),\s匹配所有空白字符,统一替换为空,实现清空所有空格和换行制表符。五、附加拓展题(10分,加分项)需求:提取网页标签内文本给定文本html_text="<div>Python正则笔试</div><p>真题答案解析</p>",使用正则非贪婪匹配,提取所有标签内的文本内容。参考答案代码:python

importre

html_text="<div>Python正则笔试</div><p>真题答案解析</p>"

#非贪婪匹配,匹配标签中间的所有内容

res=re.findall(r"<.*?>(.*?)</.*?>",html_text)

print(res)输出结果:['Python正则笔试',

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论