perplexityの回答修正くん
markdownを良い感じにするやつでもあるのでChatGPTの回答コピペするときにも使えるかもしれない、わからない ほぼG4o.iconが作った
https://gyazo.com/75b127be2cce0512d30917608fa7c1e1
code:syuseikun.js
let Sheetname = 'シート1';
let peCell = 'A2'
let sbCell = 'B2'
function main() {
let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(Sheetname);
let data = sheet.getRange(peCell).getValue();
console.log(typeof(data));
data = formatMarkdownText(data);
sheet.getRange(sbCell).clearContent();
sheet.getRange(sbCell).setValue(data);
console.log(data);
}
function formatMarkdownText(inputText) {
let text = inputText;
text = normalizeBoldText(text);
text = modifyMarkdownHeaders(text);
text = convertListItems(text);
text = formatSquareBrackets(text);
text = removeExtraSpaces(text);
return text;
}
// バッククォートを削除
function removeBackticks(inputText) {
return inputText.replace(/`/g, '');
}
// テキスト内のヘッダーを修正
function modifyMarkdownHeaders(inputText) {
// 正規表現パターン
let headerPattern = /^(#+)\s+(.*)$/gm;
// ヘッダーを修正する関数
function replaceHeader(match, hashes, headerText) {
let level = hashes.length; // ヘッダーの#の数によってレベルを判定
// バッククォートを削除
headerText = removeBackticks(headerText);
// ヘッダーテキストを修正
let modifiedHeader;
if (level === 1 || level === 2) {
modifiedHeader = [** ${headerText}];
} else {
modifiedHeader = [* ${headerText}];
}
return modifiedHeader;
}
let modifiedText = inputText.replace(headerPattern, replaceHeader);
return modifiedText;
}
// テキスト内の太字を普通のテキストに変換
function normalizeBoldText(inputText) {
// **テキスト** を普通のテキストに変換する正規表現パターン
let boldPattern = /\*\*(.*?)\*\*/g;
// 太字を普通のテキストに変換する関数
function replaceBold(match, boldText) {
return boldText; // 太字部分のみを返す
}
let normalizedText = inputText.replace(boldPattern, replaceBold);
return normalizedText;
}
// リストアイテムを変換
function convertListItems(inputText) {
// リストアイテムを変換する正規表現パターン
let listItemPattern = /^(\s*)-\s+(.*)$/gm;
// リストアイテムを変換する関数
function replaceListItem(match, leadingSpaces, listItemText) {
return leadingSpaces + " " + listItemText; // 先頭のスペースにタブを追加
}
let convertedText = inputText.replace(listItemPattern, replaceListItem);
return convertedText;
}
// 正規表現で連続する半角スペースを一つに置換する
function removeExtraSpaces(inputText) {
return inputText.replace(/(?!\n)\s\s+/g, ' ');
}
function formatSquareBrackets(inputText) {
// 正規表現で "数字" に一致する部分を "*数字 " に変換する return inputText.replace(/\(\d+)\/g, (match, p1) => *${p1} ); }