有没有适用于多种编程语言的正则表达式引擎?

时间:2013-04-17 18:40:33

标签: regex

由于每种编程语言似乎对正则表达式使用不同的语法,我正在寻找一种与所有编程语言兼容的正则表达式引擎(而不仅仅是其中的一种或两种)。有没有适用于多种编程语言的正则表达式引擎?如果没有,那么创建这样的正则表达式引擎是否可行?

1 个答案:

答案 0 :(得分:3)

您的印象不正确。 “Perl-compatible regular expressions”受到广泛支持,主要是在后台使用相同的引擎。在PHP中,您可以使用pcre_函数系列获取它们。在python中,它们是re支持的。除了传统的SQL语法之外,甚至Mysql也支持这种正则表达式样式(带RLIKE)。不支持完整perl语法的语言通常支持兼容的子集。

我无法提供支持它的完整语言列表;我不确定这个问题是否可以回答 - 如果他们在他们的命令语言中嵌入正则表达式,你会计算游戏环境等吗?但这有关系吗?在感兴趣的语言中寻找正则表达式支持,如果您没有找到完整的PCRE支持,那么您很可能会找到一个好的子集。

主要的不兼容的regexp系列是SQL的LIKE语法,shell样式的“globs”(比完整的regexp简单),以及各种unix工具,由于历史原因,它们坚持使用regexp语法的变体:{{ 1}}(默认情况下所谓的“基本”正则表达式),grep等。(请记住,sedgrep不仅仅是perl,而是它的文化兼容的实现)。