如何从字符串中检测编程语言

tri*_*e84 0 javascript regex syntax-highlighting

我正在寻找一种方法来测试一个特定的字符串,以确定它是否包含代码.

例如,我想传递一个字符串,如"body {font-weight:bold;}",并确定它是CSS.

我想这样做:

HTML,CSS,JavaScript,Ruby,C,C++,C#

我猜它会是某种类型的正则表达式,但我很难过!

Nou*_*him 6

您需要某种使用heurisitic /统计方法的分类器.如果输入字符串较大(例如,很难说哪种语言=属于),则准确性会更好.

以下是使用贝叶斯方法的分类器示例 - http://www.rubyinside.com/sourceclassifier-identifying-programming-languages-quickly-1431.html

highlight.js脚本确实在JavaScript检测.看看来源.