0

我是一名工程专业的学生,​​只是想创造一些东西,这样我就可以一口气学习多个设计领域——基本上我的项目是在我家里的一个内部通信系统上工作,该系统可以无线通信。我最终可能会做某种语音处理,看看我是否可以像 Siri 一样解析文本,并让它最终通过说话来调用一个函数。这意味着我可能有一个恒定的文本流来解析一段相当长的时间。

那么,我的问题有几个部分。

1)我假设正则表达式是解析文本并将我想要的命令与输入到我的系统的任何文本匹配的路径?如果没有,请指点我另一个方向!

2)我理解 Perl 似乎是标准,但我运行的后台应用程序将用 C++ 或 C# 编写,所以我更喜欢在这两种语言中使用正则表达式方法。

-我看到有 Regex++ 或http://www.pcre.org/,其中任何一个就足够了,还是有必要使用 Perl?

我最看重的是速度,我宁愿不说什么又要等很久才能回来。我确信和大多数其他人一样,速度是关键。我在这里看到另一个问题提出了类似的问题,但没有人真正列出基准。对于我的应用程序,假设我的代码尽可能简单,regex++ 是否足够快?

谢谢!

4

2 回答 2

3

正则表达式是一个实施决策。目前,您离实施决策还有很长的路要走。

您将运行哪种硬件?硬件是否支持您选择的语言?(例如,C# 对 Windows 以外的任何东西的支持都非常有限)

事实证明,您不需要像正则表达式那样复杂的东西。

根据以下OP的评论进行跟进:

您的评论正在开始收集您的系统的一些要求。

  • 基于文本的命令
  • 可在 Windows 和 OSX 上运行
  • 平台必须能够与“电路”对话
    • 您需要任何特定的协议吗?

与您的原始问题相关的最大要求是“基于文本的命令”。这些 1 个单词的命令或句子是否像上面 paddy 的评论?

于 2012-08-02T00:10:42.717 回答
0

Perl 正则表达式无疑是最先进的正则表达式引擎。但问题是你是否真的需要这种能力。可能不是。

我建议先考虑什么。类图,您的软件架构,算法等。如果您想编写一个快速的实现/原型,请使用Python(漂亮的语言,喜欢 Windows,完全面向对象,不慢)或Perl(神的力量在您指尖。没有什么是你做不到的。几乎所有东西都有可用的模块。但是编程 Perl 被称为“黑客”是有原因的,虽然它在 Windows 上运行良好,但它不像在 * 上那样有趣nix) 或任何其他花哨的脚本语言。

在进行一些分析之后,考虑用 C/C++ 重写性能关键或系统级的东西。Perl 具有出色的语言绑定;您可以编写 C/C++ inline。正则表达式匹配将不是关键部分。

C# 不是很便携,除非您放弃 .NET 并转而使用 Mono 框架。

于 2012-08-02T00:31:23.423 回答