正規表現について本気出して考えてみた
TL上に反応するbotの記事に関して、修正点をいくつか
まず、Yahoo知恵袋でも同じソースで答えたのですがそこのブクマコメで正規表現にeregを使うのはどうか、との指摘をいただき、同時にコメント欄で正規表現を使うべき修正点が見つかったので、同時に対処しようと思い、この記事を書いています。
ソースの方もできたのですがテストがまだ終わってないので、明日中にでも。
課題。
- eregを使わずpreg_matchで対処する。
- TLの文中にRT、@が付いていたら(他人へのpostだったら)反応しない
のふたつです。
eregについては、公式マニュアルの方に、
この関数は PHP 5.3.0 で 非推奨となり、PHP 6.0.0 で削除されます。この機能を使用しないことを強く推奨します。
だそうで、
注意: Perl 互換の正規表現構文を使用する preg_match() のほうが、多くの場合 ereg() よりも速く動作します。
でもある、と…うんうん。やっぱり公式見なきゃなあ。すみません、気をつけます。
正規表現、ずっとちゃんとやらなきゃなあと考えていたんですけどわかりにくくて放置か、誰かのコピペですませてたんで今回は勉強になりました。
http://noongoro.main.jp/note/note0050.html
http://sandman.s6.xrea.com/nucleus/item-62.html
参考にさせていただきました。
eregとほぼ一緒だけど"/テスト/"みたいに、/でエスケープしなきゃいけないところが違うかな
正規表現自体は
も参考に。
で、ばっちりのはずなのに何故かつまってました。おそらくif文での論理和、論理積。頭こんがらがっちゃって。
結局入れ子で解決(したと思う)
詳しくは明日のソースで。