正则表达式匹配有效的正则表达式

Tho*_*n79 33 regex

是否有正则表达式匹配有效的正则表达式?

(我知道有几种正则表达式.有人会这样做.)

Dar*_*rio 41

是否有正则表达式匹配有效的正则表达式?

通过定义,这很简单:.

所有的正则表达式的语言是 正规的语言(看看嵌套的括号),因此不可能有一个正规表达式解析它.

  • 我打赌有人有一个perl脚本,无论如何都可以做到 (3认同)
  • 获得唯一正确答案的+1. (2认同)

Jan*_*rts 38

如果您只想检查正则表达式是否有效,只需尝试使用您正在使用的编程语言或正则表达式库来编译它.

解析正则表达式远非微不足道.作为RegexBuddy的作者,我已经在那个区域进行了几次.如果您真的想这样做,请使用正则表达式来标记输入,并将解析逻辑留给过程代码.也就是说,你的正则表达式将匹配一个正则表达式令牌(^,$,\w,(,)在同一时间,等等),如果他们在正确的顺序你的程序代码会检查.


Dar*_*ron 15

不幸的是,由于括号嵌套错误,大多数无效正则表达式无效.这正是正则表达式无法匹配的字符串类型.(好吧,一些花哨的正则表达系统有递归扩展,但这很少见)


Han*_*örr 9

如前所述,由于它们具有递归特性,因此无法使用正则表达式描述正则表达式.你需要一个无上下文语法.

但是,无论如何,有这样一个正则表达式的意义何在?如果你只是想检查一个正则表达式是否正确,你可以简单地尝试使用它(Java中的Pattern.compile(regexp)),如果它尖叫它无效.


Phi*_*Lho 5

你可能需要一个解析器,而不是一个正则表达式.正则表达式是强大的工具,但不是解析工具.例如,它们不适合嵌套语法.