0

我需要将一行字符串分成不同的列到excel中。这是我得到的输入。

输入

  • 37006 II 学期 PG 临床研究和临床数据管理考试文凭,2012 年 7 月/8 月 Pharma 法规事务时间:最多 3 小时。分数:100

输出:带有结构的 CSV 记录(代码、Sem/Year、主题、课程、考试日期、时间、分数)

  • 37006,第二学期,PG 临床研究和临床数据管理文凭,制药法规事务,2012 年 7 月/8 月,3 小时,100

我有不同集合中的数据,这些数据构成了上述行。例如:

语法(这是一个数组/字典):

  • 学期[I,II,III,IV,V,VI,VII,VIII,IX,X,1,2,3,4,5,6,7,8,9,10]
  • 年[I,II,III,IV,V,VI,VII,VIII,IX,X,1,2,3,4,5,6,7,8,9,10]
  • 学科[PG临床研究和临床数据管理文凭,LL.B]
  • 课程[医药监管事务、法律-法学]
  • 考试日期[ 2012 年 7 月/8 月,1 月/2 月。2013 ]
  • 时间[3小时]
  • MaxMarks[30,40,50,60,70,80,90,100]

供参考,

  • 我不确定我是否可以使用任何分隔符来打破它,因为它高度不可预测或可靠。
  • 我不确定每行中的文本顺序是否相同,或者没有固定长度、汽车或单词

我的假设是,逐字阅读并尝试与我拥有的任何数组中的任何单词匹配。如果它与任何单词匹配,则将该单词分类为下降类别并添加到excel中的相关列中。

在这里,我知道如何处理数据和一切,除了理解每个单词的优化/最佳方式属于哪个类别。

有没有词法分析专家可以分享一些想法?

4

2 回答 2

0

您应该使用正则表达式来匹配这种复杂的文本模式。

于 2014-01-09T18:21:54.527 回答
0

请看一下像ANTLR这样的词法分析器。如果您知道 Java 或其他可以阅读正则表达式的语言,那么经过一个下午(或一周)的折磨后,您将能够轻松解析这些内容。您也可以用 Java 编写正则表达式,但我会建议您使用 ANTLR 接口,您可以在 Eclipse 中使用该接口。它将向您展示如何解析行。

让 ANTLR 或 Java 的输出写出 CSV 文件。CSV 将成为您将数据输入 Excel 电子表格的工具。

于 2014-01-09T18:27:32.433 回答