はじめに
こちらの LINE Bot に新たな機能を追加した。
検索方法
「Xを構成に含む漢字」は <X>
と表す。(全角記号対応)
(比較として)月+2文字:漢字ー月??
→ 月曜日, 月見草 など
月を構成に含む漢字+2文字:漢字ー<月>??
→ 消防士, 静脈血 など
実装
kanjivg-radical を使用する。
以下のページで詳しく説明されている。
1. JSON ファイルを Google Drive にアップロード
git clone または zip ファイルを ダウンロード し、data
フォルダの中にある element2kanji.json
を Google Drive にアップロード。
2. JSON ファイルの ID を取得
JSON ファイルの共有リンク https://drive.google.com/file/d/[ID]/view?usp=sharing
から ID を取得。
3. GAS のコード
gs
const e2kId = "JSONファイルのID";
const e2kFile = DriveApp.getFileById(e2kId);
const e2k = JSON.parse(e2kFile.getBlob().getDataAsString("UTF-8"));
function getE2kRgx(str){
return "("+e2k[str].join("|")+")";
}
// 確認
console.log(getE2kRgx("月"));
// (溯|齟|蔡|羂|肝|育|胆|朦|輸|梢|脱|愈|壓|瀛|撒|臓|愉|峭|縢|筋|朧|柤|廟|肓|砠|體|鵑|肌|背|蜻|肱|畳|臑|祖|壟|兪|脾|狷|脳|臟|哨|胄|宜|肋|悁|宵|酳|蔣|謂|髓|騰|藤|龕|肛|絹|鶺|肴|情|蛆|脣|厭|贏|静|逍|有|肩|悄|組|鷂|龍|肚|鶻|胃|肺|胎|橢|脈|脯|愬|臚|沮|徂|囿|鞘|撚|狙|脉|鍮|肖|羆|倩|謄|髑|姐|猜|胥|岨|腆|莇|揃|膰|膿|腓|潮|胤|胸|襲|窰|骼|楡|瑤|胝|鏘|剪|膝|繃|膽|腑|腹|臆|遙|趙|消|萠|擦|塑|餬|腟|腋|腸|膳|蘢|膾|繖|膊|膓|錆|胞|籐|糊|精|覦|髀|骨|髏|髄|骰|渝|粗|胚|膚|屑|繝|膃|膺|腔|菁|遯|揄|遡|態|腕|蛸|臍|臂|膂|耡|蝓|胖|翦|磆|清|胛|胯|膏|膀|臀|腎|膨|炙|租|且|捐|霸|霄|膩|膵|膕|膜|蝟|胡|察|硝|踰|然|寵|侑|咀|膸|膤|腦|諭|胱|胙|蝴|雎|陏|骭|滕|渭|癇|偸|籘|棚|腰|腫|腿|弸|腱|腥|覇|削|能|楜|楕|隨|燗|隴|癒|硼|随|際|渣|隋|苴|俎|墮|萌|擺|擶|腴|明|膣|潸|助|猾|瑜|前|槊|榾|籠|骸|滑|散|瑚|胼|瓏|惰|崩|銷|臉|霰|郁|涓|萓|搖|婿|淆|臈|腮|膠|腺|轍|膈|胴|湖|奬|盟|朞|肪|獎|疽|靖|堋|脹|脅|鋤|誼|疊|朝|燃|謠|醐|蹐|罷|肘|朋|勝|喻|期|聾|詛|脇|臘|誚|脊|冐|嫺|徹|靜|逾|靨|撤|豚|祭|冑|爼|箙|臙|脆|肥|喩|肬|鵬|煎|阻|瘉|股|朕|勗|將|黶|脂|壻|賄|瀧|睛|娟|脚|晴|鮹|望|朏|肯|朔|宥|喟|瘠|羸|熊|朖|肢|肭|服|魘|箭|鮪|脩|嘲|葫|青|堕|徭|脛|疂|漿|請|査|朗|稍)
getE2kRgx(str)
で str
を構成に含む漢字の正規表現(漢字1 or 漢字2 or …)が得られる。
他の部分の実装は以下の記事をご参考に。