首页/ 学科题库/ python/ 正则表达式专项测试
python 模拟试卷

正则表达式专项测试

20 题 40 分钟 难度:★★
  • re模块:match、search、findall、finditer、sub、split
  • 正则语法:字符类、量词、定位符、转义字符
  • 分组与捕获:普通分组、命名分组、非捕获分组
  • 替换操作:sub函数、替换字符串、回调替换

试卷习题(20 题)

参考答案在文末
判断题
1
判断题

re.IGNORECASE标志使匹配忽略大小写,re.MULTILINE使^和$匹配每行的开头和结尾,re.DOTALL使.匹配包括换行符在内的所有字符。

A

对

B

错

2
判断题

re.sub(pattern, replacement, string)用于字符串替换,将匹配的内容替换为指定字符串,返回替换后的新字符串。

A

对

B

错

3
判断题

贪婪量词(、+、{n,})尽可能匹配更多字符,非贪婪量词(?、+?、{n,}?)尽可能匹配更少字符,在量词后加?即可转为非贪婪模式。

A

对

B

错

4
判断题

正则表达式中\d匹配数字,\w匹配字母数字下划线,.匹配任意字符(除换行),*匹配0次或多次,+匹配1次或多次。

A

对

B

错

5
判断题

正则表达式中的分组使用括号()定义,可以通过group()方法获取分组内容,group(0)返回整个匹配,group(1)返回第一个分组。

A

对

B

错

6
判断题

Python的re模块提供了正则表达式匹配功能,match()从字符串开头匹配,search()在字符串中搜索匹配,findall()返回所有匹配结果。

A

对

B

错

7
判断题

re.compile()可以预先编译正则表达式,返回Pattern对象,多次使用同一模式时编译可以提高性能。

A

对

B

错

单选题
8
单选题

执行re.findall(r'hello', 'Hello World hello', re.IGNORECASE)的结果是:

A

['hello']

B

['Hello', 'hello']

C

['Hello', 'hello', 'Hello']

D

[]

9
单选题

编译后的Pattern对象可以直接使用以下哪些方法?

A

match、search、findall

B

只有match和search

C

只有findall

D

需要通过re模块调用

10
单选题

正则表达式a+匹配的是:

A

字符'a'出现0次或多次

B

字符'a'出现1次或多次

C

字符'a'出现恰好1次

D

字符'a'出现恰好n次

11
单选题

执行以下代码后,groups()返回什么?

Python
m = re.search(r'(\w+)@(\w+)\.(\w+)', 'test@example.com')
A

('test@example.com',)

B

('test', 'example', 'com')

C

['test@example.com']

D

('test', 'example.com')

12
单选题

执行re.findall(r'<div.*?</div>', '<div>a</div><div>b</div>')的结果是:

A

['ab']

B

['a', 'b']

C

['a', 'b']

D

['', '', '', '']

13
单选题

对字符串'Python is great',执行re.match('is', ...)的结果是:

A

返回Match对象,匹配'is'

B

返回Match对象,匹配'is'(位置7)

C

返回None

D

报错

14
单选题

执行re.sub(r'\d+', 'NUM', 'a1b23c456')的结果是:

A

'aNUMbNUMcNUM'

B

'aNUMbNUMNUMcNUMNUMNUM'

C

'NUMNUMNUM'

D

'a1b23c456'

填空题
15
填空题

re.()预编译正则表达式,返回对象。编译后的Pattern可以直接调用、search、findall、sub等方法。编译可以提高性能,避免重复解析模式。编译时可以指定标志参数。

16
填空题

\d匹配,\w匹配,\s匹配字符。.匹配任意字符(除换行)。*匹配0次或多次,+匹配1次或多次,?匹配0次或1次。[]定义字符类,^表示开头或取反。

17
填空题

re.(或re.I)使匹配。re.(或re.M)使^和$匹配每行的开头结尾。re.DOTALL(或re.S)使.匹配包括换行在内的所有字符。多个标志用|符号组合。

18
填空题

分组用()定义,group返回整个匹配,group返回第一个分组。groups()返回所有分组组成的元组。命名分组用(?Ppattern)语法,通过group('name')获取。反向引用用\n(数字)或(?P=name)。

19
填空题

re.()从字符串匹配,不匹配返回。re.search()在字符串任意位置搜索第一个匹配。re.findall()返回所有匹配结果的列表。Match对象的group()方法返回匹配内容。

20
填空题

贪婪量词匹配字符,如.*匹配到最后。非贪婪量词在量词后加,如,尽可能少匹配字符。非贪婪适合提取最短的匹配,如HTML标签。贪婪适合匹配最长的连续内容。

参考答案
1.正确 2.正确 3.正确 4.正确 5.正确 6.正确 7.正确 8.B 9.A 10.B 11.B 12.B 13.C 14.A 15.compile;Pattern;match 16.数字;字母数字下划线;空白 17.IGNORECASE;忽略大小写;MULTILINE 18.括号;0;1 19.match;开头;None 20.尽可能多;?;.*?
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 模块与包专项测试 下一套 → 流程控制专项测试