Обнаружение исходного кода с помощью Java - PullRequest
6 голосов
/ 28 октября 2011

Есть идеи, как обнаружить исходный код (Java, C #, SQL и т. Д.) В текстовом файле с Java, не глядя на расширение файла или не используя необычайно длинное, самодельное регулярное выражение?

Может быть, некоторые инструменты уже выполняют эту работу?

Ответы [ 4 ]

3 голосов
/ 28 октября 2011

Linguist

Мы используем эту библиотеку на GitHub для обнаружения языков BLOB-объектов, выделения кода, игнорирования двоичных файлов, подавления сгенерированных файлов в diff-файлах и создания диаграмм разбивки языков.

К сожалению, он написан на Ruby, может быть JRuby справится с этим?

1 голос
/ 28 октября 2011

Вы должны найти минимальное количество ключевых слов и определить некоторые логические правила.Если вы определите правильные правила, определенное ими регулярное выражение будет не очень большим.Обратите внимание: чем меньше у вас ключевых слов и правил, тем больше вероятность ошибки (SourceCode = true для файла, который не является исходным кодом, SourceCode = false для файла, который является исходным кодом).Кроме того, чем больше у вас ключевых слов и правил, тем больше времени требуется, чтобы проверить, является ли файл исходным кодом или нет.

1 голос
/ 28 октября 2011

Есть старая библиотека, http://sourceforge.net/projects/jmimemagic/, попробуйте, надеюсь, она даст удовлетворительные результаты.

1 голос
/ 28 октября 2011

Нет, без использования синтаксического анализатора (который в значительной степени является сложным вариантом регулярного выражения), невозможно увидеть разницу между файлом исходного кода и обычным текстовым файлом.Разница между исходным кодом и текстом так же проста, как однобуквенная опечатка, если подумать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...