【发布时间】:2014-07-30 16:13:32
【问题描述】:
有时您可能会为一项任务想出两个不同的正则表达式。我想知道你如何检查两个正则表达式是否描述了相同的模式?
是否有一些算法可以进行该检查?
是否有一些(在线)工具可用于检查?
例如,我这里有两个正则表达式Can we rewrite lookbehind in terms of the if-then-else?,我想知道它们是否相同。
谢谢。
【问题讨论】:
-
我会说谁不知道正则表达式,也不希望其他人了解它。
-
使用 Python 你可以:看看这个stackoverflow.com/questions/21398251/…。
-
@ForguesR:我有时可能需要 PCRE(PHP) 风格的正则表达式(具有 Python 风格的更多功能),但我不太了解 PHP。因此,在线工具将是最好的。
-
@ForguesR:不完全是。测试
a+a和aa+给出不同的字节码,但它们定义相同的语言(即匹配相同的字符串集)。 -
OP:这是一个非常困难的问题。对于 compsci(理论)正则表达式,stackoverflow.com/questions/560263/… 和 math.stackexchange.com/questions/46975/… 提供一些资源。我不知道是否(甚至可以)对诸如 PCRE 之类的实际“正则表达式”做任何事情,由于它们的许多扩展,它们实际上不是正则表达式,因为它们在数学上是定义的;考虑到 PCRE 的能力,我怀疑这可能是一个 NP 完全问题。
标签: regex