c++ - 用于嵌入式脚本/文本处理引擎的 Python vs Lua

标签 c++ python scripting lua embedded-language

对于我目前正在进行的一个项目,我希望将脚本引擎嵌入到我的 C++ 代码中,以实现一些可扩展性。该应用程序将需要大量的文本处理并在这些脚本中使用正则表达式。

我知道 Lua 在嵌入式脚本方面通常是业界的宠儿,但我也知道它不支持正则表达式(至少开箱即用)。这导致我倾向于使用 python 来嵌入我的语言,因为它似乎在 Lua 背后有最好的支持,并且仍然提供强大的正则表达式功能。

这是正确的选择吗?我应该看另一种语言吗?我有理由再看一下 Lua 吗?

最佳答案

如果您特别需要所谓的“正则表达式”(根本不是正则表达式),那么您有两种选择:

  1. 使用 Python。它包含的正则表达式与 Perl 和 sed/grep 足够相似
  2. 使用 Lua 和外部 PCRE library

另一方面,如果您需要任何良好的模式匹配,您可以继续使用 Lua,并且:

  1. 使用 Lua 包含的模式匹配,它不是 grep 传统的,但非常有能力。缺少的功能是子模式替代品 (|)
  2. 使用 LPEG ,比正则表达式强大,而且通常也更快。

如您所知,我是最后一个的忠实粉丝。它不仅可以让您定义非常复杂但具有确定性的模式,它还是一个完整的语法工具,您可以使用它来创建一个完整的解析器。如果您愿意,可以在单个多行字符串常量中描述语法,并使用您自己定义的 Hook 来捕获数据并构建您的结构。

我用它来快速破解 JSON 解析器、C 调用树、xPath 库等。

关于c++ - 用于嵌入式脚本/文本处理引擎的 Python vs Lua,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3774108/

相关文章:

c++ - 更改 wxListBox 中项目的位置

Python SCPClient 复制进度检查

bash - 在 bash 变量中引用不受尊重

c++ - 在哪里可以找到可以打开常见 3D 文件格式的 C++ 3D 建模库?

c++ - for循环在循环条件内执行,c++

python - 保留索引-字符串对应关系 spark 字符串索引器

python - 上传SimpleUploadedFile时BytesIO流图像为空白

php - 确定哪些用户上传了图像?

iphone - Xcode Lua。 Lua 文件放置在错误的位置

c++ - 模板类运算符重载多个类型名 C++