C++ 快速模式识别
我正在从事一个项目,该项目要求我实时识别日志文件中的某些模式。该服务将在多台服务器之间进行负载平衡,并每分钟推送数TB的日志文件 最初的项目要小得多,并且没有“实时”限制,所以我用Python编写它,并使用正则表达式匹配模式C++ 快速模式识别,c++,pattern-matching,C++,Pattern Matching,我正在从事一个项目,该项目要求我实时识别日志文件中的某些模式。该服务将在多台服务器之间进行负载平衡,并每分钟推送数TB的日志文件 最初的项目要小得多,并且没有“实时”限制,所以我用Python编写它,并使用正则表达式匹配模式 我正在把应用程序转换成C++来提高处理速度,但是我不相信正则表达式是我最快的模式识别选项。 有过快速模式识别个人经验的人(即不仅仅是谷歌解决方案)能否就他们的模式识别经验提供反馈 我发现了一些不同的用于模式识别的库,比如备件和正则表达式,但我更愿意征求经验丰富的开发人员的意
我正在把应用程序转换成C++来提高处理速度,但是我不相信正则表达式是我最快的模式识别选项。 有过快速模式识别个人经验的人(即不仅仅是谷歌解决方案)能否就他们的模式识别经验提供反馈
我发现了一些不同的用于模式识别的库,比如备件和正则表达式,但我更愿意征求经验丰富的开发人员的意见,或者是过去处理过大规模实时模式识别的人员的意见 -旁注:我意识到这是一个广泛的问题,在提出这个问题之前,我没有介绍我所做的研究,但是我要求的是个人经验,而不是一个我在谷歌上很容易找到的解决方案。有一些算法可以做到这一点。这篇维基文章介绍了一些比较流行的 蛮力方法是逐个字符检查模式是否匹配。如果模式中的某些位置不匹配,则递增到文本中的下一个字符。但是一些非常聪明的人,看看维基的文章,已经发现你可以使用一种算法,让你跳过前面的几个字符
有很多资料描述了这些方法,请再次查看wiki文章,与其他方法相比,我在描述这些方法方面做得很差。如果您的应用程序调用正则表达式(即模式适合于这种表示),我不会注销正则表达式,特别是当您有多台服务器可并行执行处理时。如需了解不同regex引擎的使用经验,请参阅本页,它们并非都“慢”