如何在不同的编程语言中使用相同的正则表达式?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (34)

每种语言都支持不同的正则表达方式

我有一个非常大的项目,涉及JavaScript,Ruby和Java,都必须触及相同的正则表达式。我们选择Java作为我们的“官方”再解释,这意味着任何时候其他两种语言需要评估的RE,他们必须以某种方式把它传递给一个Java程序,这种情况已经开始加起来大量的成本。

如何在不同的编程语言中使用相同的正则表达式?

提问于
用户回答回答于

语言都略有不同,但它们几乎在所有重点上重叠。(主要区别不在于正则表达式本身,而在于你如何称呼它们(一种语言find是另一种语言matches等),并支持正则表达式文字(一种语言//是另一种原始字符串是另一种反斜杠)。)

与其以某种方式获得JavaScript来支持Java的特性,反之亦然,我认为最好将自己限制在所有三种语言之间常见的大量正则表达式中,并使用单元测试来确保正则表达式三者一样。

用户回答回答于

可以在下面的链接中看到表格中语言的差异:

它们之间的主要区别是正则表达式的“高级”特征。如果你不使用这些,就没有什么问题。

由于python和java都有可用于执行原生JavaScript的模块,因此可以说所有表达式都应该为javascript编写,然后让将来的开发人员使用它们可用的模块,以确保运行的regexp总是以完全相同的方式运行。

虽然我只是记录你的应用程序,说任何正则表达式都需要所有三种语言支持,然后将它们引导到一个表格(例如之前链接的表格),表明他们应该查看可用的表格。

或者你可以省去自己的清单/表格。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励