Python如何将包含课程信息的单行字符串按课程代码拆分换行
Python单行课程信息字符串拆分实现方法
原字符串所有课程信息挤在同一行,每门课程以[A-Z]{2}\d+[A-Z]:(如CS121P:)的格式开头,课程之间用多个空格分隔。以下是两种可直接落地的实现方案:
方法1:正则表达式匹配替换(通用性更强)
如果后续课程编码规则不变(2个大写字母+数字段+1个大写字母+冒号),用正则处理不需要依赖固定开头,适配性更高:
import re # 原输入字符串 raw_str = " CS121P: Bunyan, John Henry, Matthew Luther, Martin CS132S: Calvin, John Knox, John Owen, John CS202H: Calvin, John Knox, John Owen, John " # 匹配课程编码前的空格,替换为换行符,同时去掉首尾多余空格 result = re.sub(r'\s+(?=[A-Z]{2}\d+[A-Z]:)', r'\n', raw_str.strip()) # 可直接打印或写入文件 print(result)
运行后即可得到每行一门课程的预期输出。
方法2:字符串分割拼接(无需导入依赖,适合固定前缀场景)
如果所有课程编号都固定以CS开头,可以直接用字符串分割实现,逻辑更简单:
# 原输入字符串 raw_str = " CS121P: Bunyan, John Henry, Matthew Luther, Martin CS132S: Calvin, John Knox, John Owen, John CS202H: Calvin, John Knox, John Owen, John " # 先去掉首尾空格,再按分隔符' CS'拆分 processed = raw_str.strip().split(' CS') # 第一个元素本身就是CS开头,后续元素拼接回CS前缀后用换行连接 result = processed[0] + '\n' + '\n'.join(f'CS{item}' for item in processed[1:]) print(result)
内容的提问来源于stack exchange,提问作者Karlie McCue
相关产品推荐
相关产品推荐

