如何在不同的编程语言中使用相同的正则表达式?
我见过这个问题,我从经验中知道,每种语言似乎都支持不同的正则表达式方言。我认为这个问题已经存在了很长时间,所以一定有人想对此做些什么。
我有一个非常大的项目,涉及JavaScript,Ruby和Java,所有这些都必须触及相同的正则表达式。我们选择Java作为我们的“官方”RE解释器,这意味着每当其他两种语言需要评估RE时,它们都必须以某种方式将其传递给Java程序,这开始增加很多开销。
如果我能选择任何一种RE方言,并至少从所有语言中半本地调用它,那将是我们向前迈出的一大步。这可能吗?它已经完成了吗?我们研究了PCRE,从技术上讲,可以通过Java和Ruby的本机绑定来调用它(尽管它将JS排除在外),但我还没有发现有人真正这样做。我们是孤独的吗?
ETA:我没有提到的一个问题是,这个系统应用了用户提供的正则表达式。(是的,我知道这是一个安全问题,等等,但它是由受信任的归因用户在内部使用的。我当然可以建议列出一个“不要这样做”的电源功能列表来避免,但我有点希望这不是最好的解决方案。