Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Добрый вечер! Нужна помощь в детекции языков программирования в строке.

Gitoo Too Ученик (150), на голосовании 1 год назад
Добрый вечер! Нужна помощь в детекции языков программирования в строке. Например строка - "Привет Иван! Как дела! Сотри что я написал print('hello world!')". При этом Markdown НЕ используется. И нужно детектить все или большинство языков, и заключать весь код внутри ```. Желательно решений этой задачи на JavaScript, но другие языки тоже приветсвуются) (Пишу на браузерном JS а не на Node). Пожалуйста помогите! ;)
Голосование за лучший ответ
Александр Лонберг Мыслитель (8863) 1 год назад
Цитата отсюда github
и имеет автоматическое определение языка.
А есть и готовые решения, если язык не имеет значения CodeBERTa-language-id
ONV Профи (586) 1 год назад
Один из подходов - использовать ключевые слова или уникальные конструкции для каждого языка. Вот пример реализации на JavaScript, используя некоторые ключевые слова для определения языка:

```javascript
function detectProgrammingLanguage(code) {
if (code.includes("console.log") || code.includes("var") || code.includes("function")) {
return "JavaScript";
} else if (code.includes("print") || code.includes("def") || code.includes("import")) {
return "Python";
} else if (code.includes("System.out.println") || code.includes("void") || code.includes("main")) {
return "Java";
}
// добавьте другие ключевые слова и конструкции для других языков
else {
return "Неизвестный язык";
}
}

const code = "Привет Иван! Как дела! Сотри что я написал print('hello world!')";
const language = detectProgrammingLanguage(code);
const formattedCode = "```" + language + "\n" + code + "```";
console.log(formattedCode);
```

Это очень простой и частичный пример, но вы можете расширить его, добавив больше ключевых слов и конструкций для других языков.
Лайт ЯгамиИскусственный Интеллект (309781) 1 год назад
Ну это не сработает, если в коде содержится "System.out.println", то условие code.includes("print") сработает раньше и некорректно определится, как пайтон.
Gitoo TooУченик (150) 1 год назад
Спасибо! А если после этого кода есть еще текст который НЕ код? А если после него опять код?
Саня Семенов Оракул (60497) 1 год назад
Скачай highlight.js сделай highlightAuto он определит язык
Похожие вопросы