Dar*_*rio 41
是否有正则表达式匹配有效的正则表达式?
通过定义,这很简单:不.
所有的正则表达式的语言是不 正规的语言(看看嵌套的括号),因此不可能有一个正规表达式解析它.
Jan*_*rts 38
如果您只想检查正则表达式是否有效,只需尝试使用您正在使用的编程语言或正则表达式库来编译它.
解析正则表达式远非微不足道.作为RegexBuddy的作者,我已经在那个区域进行了几次.如果您真的想这样做,请使用正则表达式来标记输入,并将解析逻辑留给过程代码.也就是说,你的正则表达式将匹配一个正则表达式令牌(^,$,\w,(,)在同一时间,等等),如果他们在正确的顺序你的程序代码会检查.
如前所述,由于它们具有递归特性,因此无法使用正则表达式描述正则表达式.你需要一个无上下文语法.
但是,无论如何,有这样一个正则表达式的意义何在?如果你只是想检查一个正则表达式是否正确,你可以简单地尝试使用它(Java中的Pattern.compile(regexp)),如果它尖叫它无效.