当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《正则表达式匹配有效的正则表达式》经验,为你挑选了5个好方法。

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

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



1> Dario..:

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

通过定义,这很简单:.

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


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

2> Jan Goyvaert..:

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

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



3> Darron..:

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



4> Hans-Peter S..:

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

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



5> PhiLho..:

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

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有