Skip to main content
 首页 » 编程设计

python re 模块之用于提取文本片段的正则表达式

2025年05月04日26telwanggs

我有显示类(class)编号、名称、等级和学生所修类(class)的其他信息的文本。具体来说,这些行看起来像这样:

0301 453  20071 LINEAR SYSTEMS I                    A    4   4    16.0 
 
0301 481  20071 ELECTRONICS I WITH LAB              A    4   4    16.0 
 
0301 481  20084 ELECTRONICS II WITH LAB      RE     B    4   4    12.0 
 
0301 713  20091 SOLID STATE PHYSICS          NG          0   0     0.0 
 
0511 454  20074 INT'L TRADE & FINANCE               B    4   4    12.0 

我想写一个正则表达式来提取:

LINEAR SYSTEMS I 
ELECTRONICS I WITH LAB 
ELECTRONICS II WITH LAB 
SOLID STATE PHYSICS 
INT'L TRADE & FINANCE 

我写了以下内容

pattCourseName = re.compile(r'([-/&A-Z\':\s]{2,})(\s+[A-Z])')

但是,这给了我

LINEAR SYSTEMS I 
ELECTRONICS I WITH LAB 
ELECTRONICS II WITH LAB      RE 
SOLID STATE PHYSICS 
INT'L TRADE & FINANCE 

也就是说,我无法摆脱 RE 部分。

有人可以帮忙吗?谢谢!

请您参考如下方法:

如果布局如您显示的那样固定,则忘记正则表达式,只抓取您想要的列:

course_name = line[16:45].strip()