用条件解释字符串

时间:2014-01-10 22:42:19

标签: excel vba excel-vba word-vba

我有一份好工作,我不知道本周在我的查询中如何解决这个问题

给我下面的文字并且在不同的领域中表现出色我必须提取和解释每个文本例如“EFFECTIVE”是它是生效日期并且在excel的一个领域中想象A1然后BETWEEN“SAO “和”LAX“和那两个城市正在进行不同的领域,如B1和C1专业,IR14BG是一个进入另一个领域的类,因为D1然后对旅行有效”开始“是另一个领域的另一个值并且”去每个旅行“ “在另一个领域可以帮助我?

我知道要掌握一些基本知识并不容易知道如何识别字符串中的那些点并且非常感谢你的帮助

TRAVEL RESTRICTIONS
    EFFECTIVE: 05JUL 13                                                                           FILED
      BETWEEN SAO AND LAX FOR IR14BG FARES

        VALID FOR TRAVEL COMMENCING ON EACH TRIP ON/AFTER 22JUL 13
        AND ON/BEFORE 30SEP 13.

1 个答案:

答案 0 :(得分:1)

正如我所看到的,根据您所需的功能,您有三种增加复杂性的选择。

Mid和InStr

如果格式是静态的(意味着间距保持不变,像“TRAVEL RESTRICTIONS”和“EFFECTIVE”这样的词将始终相同且在同一个地方),您可以使用VBA {{{ 3}}和Mid函数。

<强>正则表达式

如果事情可能稍微偏离 - 有时可能会有一些额外的空间,或者有人可能以不同的方式写日期 - 您可以尝试使用InStr。您可以将Regular Expressions对象导入到VBA项目中,并提供一种模式以匹配每行中的数据。

递归下降解析器

如果这些方法都不够健壮,您可以创建自己的解析器。请注意,这不是一项简单的任务,但它是三者中最强大的任务。手动编写的最简单的解析器(这是VBA中唯一的选项)是VBScript RegExp。我发现用于描述概念和过程的最佳资源是Jack W. Crenshaw,名为“让我们构建一个编译器!”你可以在网上找到Recursive Descent parser