实验3 字符串与正则表达式
1 实验目的
-
理解字符串编码格式。
-
熟练掌握字符串常用方法。
-
了解正则表达式基本语法。
-
了解标准库re中的常用函数。
2 实验内容
提示:import re
(一)单词倒置
将一句话的单词进行倒置,标点不倒置。(如 I like beijing. 变为:beijing. like I)
(二)句子拆解
将一句话分别拆为只含数字、小写字母、大写字母、标点符号(',.!;?<>')和中文('[\u4e00-\u9fa5]')的五个句子。
3 实验步骤
(一)单词倒置
-
步骤1 输入一句话。
-
步骤2 用空格对句子进行切片。
-
步骤3 将元素反向排序。
-
步骤4 输出单词倒置后的句子。
# 将一句话的单词进行倒置,标点不倒置。(如 I like beijing. 变为:beijing. like I)
import re
print("".join(['*' * 66, '\n', 'ZheLu 人 工 智 能 试 验 箱'.center(66), '\n', '-' * 66, '\n',
'ex3_1 单词倒置'
.center(66), '\n', '*' * 66]))
s = input("请输入一句话:")
s = re.split(r'\s+', s.strip())
print(' '.join(reversed(s)))
(二)句子拆解
-
步骤1 输入一句话。
-
步骤2 找到句子中所有的数字,并将它们合成一个句子。
-
步骤3 再寻找小写字母、大写字母、标点符号和中文并输出。
# 将一句话分别拆为只含数字、小写字母、大写字母、标点符号(',.!;?<>')和中文('[\u4e00-\u9fa5]')的五个句子。
# 将一句话分别拆为只含数字、小写字母、大写字母、标点符号(',.!;?<>')和中文('[\u4e00-\u9fa5]')的五个句子。
import re
print("".join(['*' * 66, '\n', 'ZheLu 人 工 智 能 试 验 箱'.center(66), '\n', '-' * 66, '\n',
'ex3_2 句子拆解'
.center(66), '\n', '*' * 66]))
s = input("请输入一句话:")
print('数字:', ''.join(re.findall(r'[0-9]', s)))
print('小写字母:', ''.join(re.findall(r'[a-z]', s)))
print('大写字母:', ''.join(re.findall(r'[A-Z]', s)))
print('标点符号:', ''.join(re.findall(r'[,.!;?<>]', s)))
print('中文:', ''.join(re.findall(r'[\u4e00-\u9fa5]', s)))
4 观察与思考
思考以下正则表达式的含义及应用场景
-
'^\w+@(\w+.)+\w+$'
-
r'(\w)(?!.*\1)'
-
'((?P<f>.)(?P=f)(?P<g>.)(?P=g))'