如何打破已知单词的界限

时间:2014-01-09 18:14:11

标签: excel text-parsing lexical-analysis lexical

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

输入

  • 37006 II Semester P.G.临床研究和临床数据管理考试文凭,2012年7月/ 8月制药法规事务时间:最长3小时。标记:100

输出:包含结构的CSV记录(代码,Sem /年,主题,课程,考试日期,时间,分数)

  • 37006,II Semester,P.G。临床研究和临床数据管理文凭,制药法规事务,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]
  • 受试者[P.G。临床研究和临床数据管理文凭,LL.B]
  • 课程[制药法规事务,法律 - 法理学]
  • ExamDates [2012年7月/ 8月,1月/ 2月。 2013]
  • 时间[3小时]
  • MaxMarks [30,40,50,60,70,80,90,100]

FYI,

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

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

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

是否有任何词法分析专家可以就此分享一些想法?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

请查看像ANTLR这样的词法分析器。如果您了解读取正则表达式的Java或其他语言,则可以在下午(或一周)的折磨后轻松解析这些内容。你也可以用Java编写regexp,但我会把你推向你可以在Eclipse中使用的ANTLR接口。它将向您展示如何解析这些行。

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