アスキーアートの正規表現をネットで検索してもなぜか情報が出てこなかったので、5ちゃんねるアスキーアートの正規表現を紹介します。
5ちゃんねるアスキーアートの正規表現
結論を書くとアスキーアートの正規表現パターンは以下になります。
["'\(\)\+,\-\.:;J^_`l\{\|\}~´д―′∀∧∩∪⊂⊃⌒─┏┓┣┳┴■□◎●、゜ゝ・ーヽヾ乂人从蠶(=T\\^_`i|。、ィニノマムレ゙゚ ̄]{4,}
test()を使ってアスキーアートにマッチしているか確認します。
let text = `
<⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
`;
let regex = /["'\(\)\+,\-\.:;J^_`l\{\|\}~´д―′∀∧∩∪⊂⊃⌒─┏┓┣┳┴■□◎●、゜ゝ・ーヽヾ乂人从蠶(=T\\^_`i|。、ィニノマムレ゙゚ ̄]{3,}/;
if(regex.test(text)){
console.log('マッチしました');// 出力結果: マッチしました。
}
ただしこの正規表現はすべてのアスキーアートに対応していません。アスキーアートは多種多様であるためすべて対応させるのは難しいです。
またこの正規表現の場合たとえば次のような文字にもマッチしてしまいます。↓
let text = 'よっしゃーーーーーー!!!';// これにもマッチしてしまう
多少意味のある文字にもマッチしてしまうので実際のプロジェクトで使用するときは注意が必要です。
正規表現パターンの解説
さきほどの正規表現パターンは正規表現の文字クラス使って「特定の記号が4連続で出現したときにマッチする」という正規表現パターンなので全てのアスキーアートに対応しているわけではありません。
よって、アスキーアートにマッチさせるベースの正規表現はこれでもいいかもしれませんが、様々なアスキーアートパターンにマッチさせるには工夫と改良が必要になります。
コメント