有没有人有代码来查找包含正则表达式的文件?我认为你可以有两种不同的口味,一种用于BRE,一种用于ERE。
你会认为某种测试套件会有类似isRegex()的测试。任何人都可以有任何代码?当然,寻找一些全面的东西。
我看到这是here所讨论的,但没有看到任何实际的回应。如果我想grep任何包含正则表达式的文件,可能是以典型的//为界,我该怎么做?
答案 0 :(得分:18)
正则表达式本身不是regular language。线索是它们包含括号和方括号,必须平衡。
正则表达式本身可由context-free grammar描述,并使用recursive-descent parser进行解析。
答案 1 :(得分:3)
除了
egrep '/.+/' file
你正在看一个非常复杂的练习。
答案 2 :(得分:1)
如果您正在寻找仅包含或主要包含正则表达式的文件,那么统计信息应该告诉您某个文件包含的语法多于其他文件。因此,您可以定义一组指标,并将它们的分数组合成一个度量标准,该度量标准对可能感兴趣的文件进行评分。选择一个截止值然后放手。一些指标:
但如果这只是一次性,那么你可能最好使用Chaos's answer并手动削减结果。在你正在寻找的正则表达式中是否有任何特别的东西,这可能更容易接受?