正则表达式获取学生姓名
时间: 2023-10-18 19:02:54 浏览: 39
假设学生姓名是由中文汉字组成的,可以使用如下正则表达式来获取学生姓名:
```python
import re
name_pattern = re.compile(r'[\u4e00-\u9fa5]+') # 匹配中文汉字
text = '学生姓名:张三,学号:20210001,性别:男,年龄:20岁。'
name = name_pattern.search(text).group()
print(name) # 输出:张三
```
在上面的代码中,首先定义了一个正则表达式模式,使用 `re.compile()` 方法将其编译为一个正则表达式对象。然后,在待匹配的文本中搜索符合该模式的内容,使用 `search()` 方法。最后,使用 `group()` 方法获取匹配到的结果。
相关问题
python请用正则表达式获取学生姓名、学号存入CBC.csv中。
假设学生姓名和学号的格式为“姓名:学号”,可以使用正则表达式来匹配并提取信息。以下是一个示例代码:
```python
import re
import csv
# 定义正则表达式
pattern = r'(\w+):(\d+)'
# 读取文本文件
with open('students.txt', 'r') as f:
content = f.read()
# 使用正则表达式提取信息
matches = re.findall(pattern, content)
# 将提取的信息写入 CSV 文件
with open('CBC.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['姓名', '学号'])
writer.writerows(matches)
```
在上面的代码中,我假设学生姓名和学号之间使用冒号分隔。首先定义了一个正则表达式,使用 `re.findall` 函数匹配文本中所有符合模式的字符串,并将结果存储在 `matches` 变量中。然后使用 `csv.writer` 将匹配结果写入到 CSV 文件中。
文件夹lab_6中存放着¬某班学生提交的一次实验报告,实验报告文件名中包含有学生的姓名、学号信息。请用正则表达式获取学生姓名、学号存入CBC.csv中
好的,我可以帮你完成这个任务。以下是Python代码实现:
```python
import re
import os
import csv
# 设置要遍历的文件夹
folder_path = './lab_6/'
# 创建CSV文件
with open('CBC.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['姓名', '学号'])
# 遍历文件夹中所有文件
for file_name in os.listdir(folder_path):
# 使用正则表达式获取学生姓名、学号
match_result = re.match(r'.*(\d{8}).*-(.*)\.docx', file_name)
if match_result:
student_id = match_result.group(1)
student_name = match_result.group(2)
# 将学生姓名、学号存入CSV文件
with open('CBC.csv', 'a', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow([student_name, student_id])
```
这段代码会遍历指定文件夹中的所有文件,使用正则表达式获取学生姓名、学号,然后将它们存入CSV文件中。注意,这里的正则表达式是根据文件名的格式来设计的,如果实验报告文件名有变化,可能需要修改正则表达式。