SQLからテーブル名を抜出したい
JavaScript
<!DOCTYPE html>
<html>
<head>
<title>Extract Table Names from SQL</title>
</head>
<body>
<input type="file" id="file-input" accept=".txt,.sql" />
<button id="extract-btn">Extract Table Names</button>
<div id="output"></div>
<script>
const fileInput = document.getElementById('file-input');
const extractBtn = document.getElementById('extract-btn');
const outputDiv = document.getElementById('output');
const regex = /\bFROM\s+([^\s;]+)|\bJOIN\s+([^\s;]+)/gi;
extractBtn.addEventListener('click', () => {
// テキストファイルからSQL文を読み込む
const file = fileInput.files[0];
if (!file) {
alert('Please select a file');
return;
}
const reader = new FileReader();
reader.onload = () => {
const data = reader.result;
// 正規表現を使用して、SQL文からテーブル名を抽出する
const tableNames = [...data.matchAll(regex)].map(match => match[1] || match[2]);
// ユニークなテーブル名のリストを表示する
outputDiv.innerText = [...new Set(tableNames)].join(', ');
};
reader.readAsText(file);
});
</script>
</body>
</html>
Python
import re
# SQL文を含むテキストファイルのパス
file_path = "sample.sql"
# テキストファイルを開いて、SQL文を読み込む
with open(file_path, "r") as f:
sql_text = f.read()
# 正規表現を使用して、SQL文からテーブル名を抽出する
table_names = re.findall(r"\bFROM\s+([^\s;]+)", sql_text, flags=re.IGNORECASE) + \
re.findall(r"\bJOIN\s+([^\s;]+)", sql_text, flags=re.IGNORECASE)
# ユニークなテーブル名のリストを表示する
print(list(set(table_names)))
const fs = require('fs');
const regex = /\bFROM\s+([^\s;]+)|\bJOIN\s+([^\s;]+)/gi;
const filePath = 'sample.sql';
// テキストファイルからSQL文を読み込む
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
// 正規表現を使用して、SQL文からテーブル名を抽出する
const tableNames = [...data.matchAll(regex)].map(match => match[1] || match[2]);
// ユニークなテーブル名のリストを表示する
console.log([...new Set(tableNames)]);
});
サクラエディタの正規表現
FROM\s+([^\s;]+)|JOIN\s+([^\s;]+)