寻找正则表达式的正则表达式?

有没有人有用于查找包含正则表达式的文件的代码? 我会假设你可以有两种不同的口味,一种是BRE,一种是ERE。

你会认为某种测试套件会有类似于isRegex()测试的东西。 任何人都可以有任何代码? 当然要全面寻找。

我看到这是在这里讨论,但没有看到任何实际的回应。 如果我想grep任何包含正则表达式的文件,或许以典型的//为界,那我该怎么做呢?


正则表达式本身不是一种常规语言。 线索是它们包含括号和方括号,并且必须是平衡的。

正则表达式本身可以用上下文无关文法来描述,并用递归下降解析器来分析。


egrep '/.+/' file

你正在看一个真正涉及的练习。


如果您正在专门查找仅包含或主要包含正则表达式的文件,则统计信息应该告诉您某个文件包含的语法比其他语法更多。 所以你可以定义一组指标,并将它们的分数组合成一个度量标准,该度量标准记录了它有多大可能感兴趣的文件。 选择一个截止点,让它离开。 一些指标:

  • 存在多个[0-9],[AZ],+等
  • / foo /
  • 不是标准的代码文件
  • 可压缩性较差(我知道狡猾,但正则表达式语法的紧凑性在直觉上比正常词更难压缩)
  • 等等
  • 但是,如果这只是一次性的,那么你最好使用混沌的答案并手动削减结果。 在正在寻找的正则表达式中有没有特别的东西,可能更容易理解?

    链接地址: http://www.djcxy.com/p/76747.html

    上一篇: Regular expression for finding a regular expression?

    下一篇: Why is recursive regex not regex?