【问题标题】:Regex, how to get a certain amount of lines of text up to a certain word with regex?正则表达式,如何使用正则表达式获得一定数量的文本行到某个单词?
【发布时间】:2016-04-19 18:49:56
【问题描述】:

我正在尝试提取班级和班级编号以及先决条件。但是,我无法获得课程(例如:ACCT 203),包括先决条件(例如:ACCT 301),仅此而已。我在 python 中这样做,希望以后将这些数据插入数据库。有人能帮忙吗?我对正则表达式比较陌生。

会计203 财务会计三学分 发展基本会计概念。重点是分类, 记录和报告所有形式的业务的业务交易 组织。每学期提供。 会计204 管理会计 三学分 重点是生成、分析和使用会计信息 计划和控制过程。主题包括预算、标准、成本体系、 增量分析和财务报表分析。每学期提供。 先决条件: 会计203 ACCT 301 中级会计我 三学分 这是两门课程中的第一门课程,旨在提供一个 全面理解概念、原则、假设和 用于对经济进行分类、记录和报告的惯例 业务实体的交易。每年秋天提供。 先决条件: ACCT 204 或导师许可 ACCT 302 中级会计 II 三学分 这是双课程序列中的第二门课程,旨在提供 全面理解概念、原则、假设和 用于对经济进行分类、记录和报告的惯例 业务实体的交易。每年春天提供。 先决条件: ACCT 301 或导师许可 ACCT 303 会计理论与实践 三学分 本课程旨在提供对当前项目的理解 会计师的计量和报告问题。还将讨论 会计行业试图建立的当前问题和 测量和报告的指南。 先决条件: ACCT 302 ACCT 310

【问题讨论】:

  • 正则表达式不是那么容易,甚至对我来说也不是(我在 Py 编程方面已经有几年了)。我建议从其他主题开始...
  • 您为什么认为正则表达式是一种解决方案?
  • 我已经尝试过 ([A-Z]{3,4}\s\d\d\d)\D+[A-Z]{3,4} 以及其他基本的,如 \D+\s \d\d\d @BAH
  • 还有哪些其他选择? @cdarke
  • 例如,str.startswith('ACCT ')

标签: python regex parsing


【解决方案1】:

我不确定这是否正是您想要的。但这是我的解决方案;

>>> classes = re.findall("[A-Z][A-Z][A-Z][A-Z] [0-9][0-9][0-9]", text)  
>>> for i in classes:             #just find element by order
...     print(i)
...
ACCT 203
ACCT 204
ACCT 203
ACCT 301
ACCT 204
ACCT 302
ACCT 301
ACCT 303
ACCT 302
ACCT 310

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多