忍者ブログ

[PR] []

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

正規表現:おはようのパターン [twitter bot]

前回、ひらがなカタカナ問わないでマッチするかどうか、簡単にやる方法がある気がすると書きましたが、初心者には全然簡単じゃないようなのでとりあえず諦めました。

めんどくさい書き方してると思うけど、
「おはよう」「おはよ」「オハヨー」「オハヨ!」「おはー」「おっはー」などなどにマッチするようにできた…と思う。

(お|オ)(っ|ッ)?(は|ハ)(よ|ヨ)?((う|ウ)|ー)?


問題点。
「おは」が入ってると反応するので
たとえば「おはし使う?」にも「おはよう」系リプっちゃう。
「おはー」「おは!」「おは!」「おは。」「おは、(botの名前)。今日の運勢は?」みたいに
ー。!、の他半角または全角スペースのとき以外は反応しないようにこうしてみるといいかも。
(お|オ)(っ|ッ)?(は|ハ)(よ|ヨ)?(う|ウ)?(ー|!|!| | |ー|。|、)
これだと、「おは」か「おっは」の後に、ー!! (半角スペース) (全角スペース)、。のうちのどれかが来るときだけ、おはよう系リプライをするようになる…と思ったんだけど、「おはし使える?」に反応するのでもう少し調べたら、
「半角スペースはなんでもいい一文字」らしく…「し」でもいいんだから、そりゃ「おはし」にも反応しますな。
じゃあ半角スペースはどうするかっていうとsだそうです。突っ込んでみる。
(お|オ)(っ|ッ)?(は|ハ)(よ|ヨ)?(う|ウ)?(ー|!|!|s|ー|。|、)

…待て。これでいいと思ったけど、一番スタンダードな「おはよう」に反応しなくなる!
(ー|!|!|s| |ー|。|、)の中に、「おはよう」だけの投稿である場合を示すような表現をするには$を追加すればいいのかな。
$は行末とか文字列の末尾を表わすらしい。
というわけで、最終的にこのように。

"(お|オ)(っ|ッ)?(は|ハ)(よ|ヨ)?(う|ウ)?(ー|!|!| |ー|。|、|s|$)"=> array(
"おはようございます",
※テストのときはリプライ語を増やしておかないと、連投規制みたいなのに引っかかるような気がします。

参考にしたとこメモ。
これだけのことするだけなのに、こんなにお世話になったorz
http://www.rider-n.sakura.ne.jp/regexp/regexp.php
http://xfield.info/modules/tautech/content0144.html
http://www.mnet.ne.jp/~nakama/
http://bot.sblo.jp/article/35461685.html
http://www.scollabo.com/banban/php/php_15.html


---広告---
FC2の低価格有料サーバ。PHP、CRON使える。
PR

最新記事

オンマウスでタイトル~

ブログ内検索

オススメサーバなど。

はやくて、やすくて、カンタン。
全てが揃った究極のレンタルサーバ、☆さくらのレンタルサーバ
 
ロリポップのドメインは85種類!
きっとお好みのドメインが見つかるはず!
ロリポップはドメイン持ってる人が非常に使いやすいかと。
aaa.jpを取得して、web.aaa.jp、blog.aaa.jp、mail.aaa.jpみたいに、使い分けが出来て便利です。
メアドもたくさん作れて、転送設定なんかもできて良い。
実績から見ても信用できるし、イチオシです。
 
で、ドメイン取るならココ。
時々新規超安キャンペーンやってます。
ムームードメイン

 
お手軽価格で使いがい、あります。
月額250円~で、容量5GB、独自ドメイン、CGI使用、商用利用可能!
FC2レンタルサーバーLite
 
A8.net

プロフィール

HN:hrn
一言:ブログタイトル迷走中。
php初心者/htmlとcssならちょっと得意/javascriptは苦手。必要なことだけ調べるのでいつも遠回り、余計なことばかりしている。
琉金とポリプ飼ってます
透明水彩ってイイヨネ。
 
アクア用品なんかのレビューでは、アフィリエイトリンクつけてるものがあります。
記事が参考になったら、ここから買ってくれると嬉しい。