【发布时间】:2011-12-20 10:51:34
【问题描述】:
我见过 Ruby 和 Perl 程序员完全使用正则表达式来完成一些complicated code challenges。 Perl 正则表达式中的lookahead and lookbehind 功能使其比大多数其他语言中的正则表达式实现更强大。我想知道它们到底有多强大。
有没有一种简单的方法可以证明或反驳 Perl 正则表达式是 Turing complete?
【问题讨论】:
-
@PeterOlson:是的,但是在没有programmers.se之前他们就被问到了
-
@daxim - 这里有什么规则?您可以轻松地为规则 110 编写模式(例如,以
'010'和模式s/(?:|(?<=0)(0)(?=0)|(?<=0)0(?=(1))|...|(?<=1)1(?=1)(?=1*(0))|^(?=(0))|(?<=(0))$)/$1/g开头 - 我猜它需要更多思考),但我认为您需要在循环中使用它才能成为任何采用。这是合法的吗?也许你有你所追求的程序的模板? -
@Kobi 如果图灵完备,它就是合法的。我不太了解第 110 条规则,所以我不知道这是否有效。
标签: regex perl turing-complete