具有反向引用的正则表达式在哪里属于chomsky层次结构(它们是否属于那里)?

时间:2013-02-08 19:51:56

标签: regex

我在这里有些困惑 - 带有后引用的RegExes显然是不是正则表达式,因为它们可以用来描述复制语言('ww'代表任何单词w ),这是上下文敏感的。但与此同时,它们仍然无法用于描述像HTML这样的无上下文语言(甚至只是匹配括号) - 至少我不知道这样的事情在例如POSIX正则表达式。

话虽如此 - 这种“正则表达式”属于乔姆斯基等级中的任何地方,或者它们之间是否有某种弗兰肯斯坦可憎的行为?

1 个答案:

答案 0 :(得分:2)

他们并不适合。

带有反向引用的正则表达式可以匹配一些非上下文语言(例如(.*)\1),但也无法匹配所有无上下文语言(典型示例是嵌套括号)。

Here is a relevant post on the CSTheory StackExchange,其中包含更多详细信息。

另请注意,某些实现(例如.NET或Perl)比反向引用更进一步,可以匹配嵌套括号。