【问题标题】:Compiling Oniguruma regex library to javascript using Emscripten使用 Emscripten 将 Oniguruma 正则表达式库编译为 javascript
【发布时间】:2012-11-03 10:22:19
【问题描述】:

我正在尝试将更强大的正则表达式库引入 javascript。我找到的唯一解决方案是使用EmscriptenOniguruma regex library 编译为javascript

我已经安装了 Emscripten 并用他们的小测试脚本对其进行了测试,还下载了 oniguruma 源代码,但仍然不知道下一步该做什么。

有人熟悉 emscripten 吗?

【问题讨论】:

  • 不理解反对票!我做错什么了吗?这个问题不适合stackoverflow还是标签不合适?怎么了?
  • 它太具体了,对其他用户没有吸引力。比较适合在emscripten的邮件列表中询问。
  • 在世界上分布最广的编程语言中拥有更好的正则表达式绝不是“没有吸引力”,而是一项高度相关的努力。
  • 是的;其他用户?你是说大多数?那些正在寻找“如何在 JavaScript 中对数组求和”和其他极其无害的问题?
  • 嘿艾伦,你用 emscripten 编译了 oniguruma 吗?

标签: javascript emscripten oniguruma


【解决方案1】:

当您使用 Emscripten 时,从 C/C++ 构建/编译的一般方式保持相似。改变的步骤是你不使用例如gcc 编译器Emscripten 编译器.

也就是说,您是否熟悉 C/C++ 并且更具体地了解 autotools(这似乎是构建工具 Oniguruma 使用)。否则,您可能很难理解需要做什么以及如何做。

上次我检查了 Emscripten 不支持 Libtool,因此使用 autotools 构建可能会失败。不过,请随时在 Emscripten IRC 频道询问,这是否真的不可能。

我能想到的另一种方法是使用 autotools 生成 Makefiles,然后为 Emscripten 程序编写自定义目标。请注意,这适用于熟悉 make 内容的高级用户。

如果这些步骤对您来说很麻烦,那么您应该看看 Javascript 库是否足以满足您的需求。

【讨论】:

    【解决方案2】:

    更现实的方法是使用http://xregexp.com。它向 RegExps 添加了更多功能,并将它们编译为 JavaScript 更有限的 RegExp 方言,因此它可以获得最好的功能和性能。使用 emscripten 编译正则表达式库的性能不太可能足以在生产中使用。对于某些用途,emscripten 非常出色,但在这种情况下,开销似乎不值得。

    XRegExp 的作者甚至有一篇关于lookbehinds 的文章http://blog.stevenlevithan.com/archives/javascript-regex-lookbehind

    【讨论】:

    • 如果您提出索赔,请备份。为什么 Emscripten 编译的代码不应该像“本地编写”的 Javascript 一样快?最后,它只是开始使用 Javascript。
    • 因为它不是 emscripten 编译代码与原生 javascript。它是 emscripten 编译的代码与引擎内置的代码,根本没有在 javascript 中实现。我在这里说的是内置的 RegExp,而不是在 js 中实现的东西。
    • 那么您还应该添加要求,在该要求下您的陈述是正确的。也就是说 - 只有当 RegEx 可以用 Javascript 变体表示时。只有这样才能认为它更快。
    • 我已经尝试过 XRegExp,但它并没有削减它。我想要的是在客户端 chrome 应用程序环境中解析许多最初为 Ruby 1.9 编写的复杂正则表达式。大小和速度无关紧要,但能够正确解析所有正则表达式是我所追求的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    相关资源
    最近更新 更多