顔文字っぽいものにマッチする正規表現
実践
var text = '[0-9A-Za-zぁ-ヶ一-龠]'; var non_text = '[^0-9A-Za-zぁ-ヶ一-龠]'; var allow_text = '[ovっつ゜ニノ三二]'; var hw_kana = '[ヲ-゚]'; var open_branket = '[\(∩꒰(]'; var close_branket = '[\)∩꒱)]'; var arround_face = '(?:' + non_text + '|' + allow_text + ')*'; var face = '(?!(?:' + text + '|' + hw_kana + '){3,}).{3,}'; var face_char = new RegExp(arround_face + open_branket + face + close_branket + arround_face); log(face_char); log('ŧ‹"(๑´ㅂ`๑)ŧ‹"'.match(face_char)); log('˚‧º·(˚ ˃̣̣̥᷄⌓˂̣̣̥᷅ )‧º·˚'.match(face_char)); log('(۶ૈ ۜ ᵒ̌▱๋ᵒ̌ )۶ૈ=͟͟͞͞ ⌨`ワ°)・;’.'.match(face_char));
顔文字はタイムラインから適当に拾って来た
宣伝
上記を使ってタイムラインから顔文字っぽいものを拾って投稿する bot 作った
顔文字マシーン
https://twitter.com/xob
時々アラビア文字拾ってきたり変なパターンを拾ってきたりする
もっと精度良くしたい
その他
はてなブログに投稿しました
顔文字っぽいものにマッチする正規表現 - life.stub(:happy?).and_return(true)
http://t.co/Yi4btbytXf
— ʞɐznʎɐ ʇɐʞǝsɥıɯɐ (@mitukiii) May 30, 2013
(:happy?).and_return(true)
— 顔文字マシーン (v0.4) (@xob) May 30, 2013