由于每种编程语言似乎对正则表达式使用不同的语法,我正在寻找一种与所有编程语言兼容的正则表达式引擎(而不仅仅是其中的一种或两种)。有没有适用于多种编程语言的正则表达式引擎?如果没有,那么创建这样的正则表达式引擎是否可行?
答案 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
等。(请记住,sed
和grep
不仅仅是perl,而是它的文化兼容的实现)。