【问题标题】:Choose algorithm that will search javascript source code and ignore whitespaces选择将搜索 javascript 源代码并忽略空格的算法
【发布时间】:2019-06-04 10:43:42
【问题描述】:

搜索本身将在 C++ 上运行。一般的想法是找到一串忽略空格的代码。例如我们有这样的代码:

function test(){
    let test = 3;
}

所有这些搜索模式都会在上面的代码中搜索成功:

  1. “测试 = 3”、“测试 = 3”、“测试 = 3”
  2. “函数测试()”,“函数测试()”

性能是我在这里需要的主要内容。 请建议可以解决问题的算法。

【问题讨论】:

    标签: javascript c++ algorithm search


    【解决方案1】:

    在每个标记之间使用带有\s*\s+ 的正则表达式(取决于是否需要至少一个空格来分隔标记):

    1. \btest\s*\s*3\b
    2. \bfunction\s+test\s*\(\s*\)

    【讨论】:

    • 由于性能原因,我不能使用正则表达式。搜索最大为 15 Mb 的文件。并且需要记忆类似的搜索案例。
    • 然后编写删除任何多余空格的代码。但是您需要区分= 周围不必要的空格和function 之后的必要空格。
    • 正则表达式性能一般都还不错,你有没有实际测试过,发现太慢了?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2017-08-02
    • 2018-04-11
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    相关资源
    最近更新 更多