使用Java检测源代码

时间:2011-10-28 12:33:35

标签: java regex algorithm

任何想法如何使用Java在文本文件中检测源代码(Java,C#,SQL等)而不查看文件扩展名或使用非常长的自制正则表达式?

也许有一些工具已经完成这项工作了吗?

4 个答案:

答案 0 :(得分:3)

  

Linguist

     

我们在GitHub上使用这个库来检测blob语言,突出显示代码,忽略二进制文件,抑制差异中生成的文件并生成语言细分图。

不幸的是,它是用Ruby编写的,也许JRuby可以处理它?<​​/ p>

答案 1 :(得分:1)

不,如果不使用语法分析器(几乎是正则表达式的复杂变体),就无法看到源代码文件和常规文本文件之间的区别。如果你考虑一下,源代码和文本之间的区别就像一个字母错字一样简单。

答案 2 :(得分:1)

您应该找到一些简约的关键字并定义一些逻辑规则。如果您定义了正确的规则,那么它们定义的正则表达式将不会非常大。请注意,您拥有的keywrod和规则越少,错误的概率就越大(SourceCode = true表示文件不是源代码,SourceCode = false表示文件是源代码)。此外,您拥有的关键字和规则越多,就需要更多时间来检查文件是否为源代码。

答案 3 :(得分:1)

有一个旧图书馆,http://sourceforge.net/projects/jmimemagic/尝试一下,我希望它能给出满意的结果。