正则表达式是否通用?

时间:2011-05-26 04:50:52

标签: php javascript regex

我想知道正则表达式是否适用于所有语言,如PHP,Javascript等?

6 个答案:

答案 0 :(得分:8)

你的问题对我来说有点模棱两可:你必须用 Universal 定义你的意思,但这是我的回答:

正则表达式几乎用于所有编程语言,如PHP,JavaScript,Perl,Awk,Java,C#等......

问题是语法可能会有所不同从一种语言到另一种语言,并且每种语言可能以不同的方式实现,并且包括或不包含< strong>某些特定功能(通常允许正则表达式识别常规语言的功能,以及Context-Free之类的其他功能)

如果您创建了一种新的编程语言,则可以添加它们的正则表达式功能,但这并不意味着语法与.NET中的正则表达式语法完全相同。不仅如此:发动机的实施肯定会与其他发动机不同(效率更高/效率更低)......

答案 1 :(得分:8)

答案 2 :(得分:4)

没有。正则表达式有许多方言,但基本表达式往往非常相似。此外,一种方言中引入的有用特征通常被其他方言复制。

答案 3 :(得分:3)

正则表达式本身就是一种编程结构。所以你会发现关于模式匹配的表达式的核心概念基本上是通用的,但是每个实现都会提供它们特定的语法旋转来实现它。

答案 4 :(得分:2)

没有。但是可能使用的任何东西都会以某种形式或形式支持它们。

答案 5 :(得分:1)

坏消息是否定的!

正则表达式有很多实现和变体。

在标准的unix实现中,ksh,bash,grep和awk都使用略有不同的规则。 lua有一个非常有限的正则表达式库,Java有一个功能齐全的lib,但它有自己的怪癖。

好消息是,大多数流行的脚本(php,python等)语言使用“pcre”库,而“pcre”代表“Perl Compatable Regular Expresions”,根据定义,它的工作方式与perl正则表达式相同尽可能的。 pcre库可以链接到编译语言(C,C ++等)。