- blogs:
- cles::blog
« 警察がケータイのGPS情報の利用を開始 :: 日本一短いトンネル »
2011/11/04

Regexp Assemble For PHP


以前、Net::CIDR::LiteというIPアドレスの羅列からCIDR表現を生成するPerlのライブラリを紹介しましたが、今度はその正規表現版とも言うことが出来るphp向けライブラリが公開されていたのでメモ。
これを使うと、複数の単語にマッチする最適化された正規表現を簡単に得ることが出来ます。
改行区切りで単語を入れると、すべての単語にマッチする正規表現を自動的に作成します。
perlにはRegexp::Assembleという正規表現を作成してくれるモジュールがあります。
これを PHPに移植して、 Regexp Assemble For PHPなるモジュールを作って見ました。
例えば、このサイトで使っているコメントのブラックリストの最適化をしてみます。これまで正規表現については単語を単純にOR(|)でつなげていたのですがこのライブラリを使うことでこのように変換することができました。今のところ特に問題はなさそうです。
(anonymous|pharma|condylox|allegra|cum|tramadol|phentermine|addfreestats|cash|enlarge|loan|drug|hoodia|viagra|buy|pill|porn|cheap|casino|lacoste|ringtones|propecia|vibrator|acai|tylenol|codeine|generic|zoloft|tylenol|hydrocodone|percocet|dating|levitra|diet|zolpidem|dvd decrypter|singulair|valsartan|diovan|alprazolam|xanax|migraine|purchase|tablets|\.\.\.)
(?:p(?:h(?:entermine|arma)|ercocet|ropecia|urchase|ill|orn)|a(?:(?:ddfreestat|nonymou)s|l(?:prazolam|legra)|cai)|d(?:(?:atin|ru)g|i(?:ovan|et)|vd decrypter)|c(?:o(?:ndylox|deine)|as(?:ino|h)|heap|um)|v(?:i(?:brator|agra)|alsartan)|t(?:(?:ramad|ylen)ol|ablets)|l(?:acoste|evitra|oan)|h(?:ydrocodone|oodia)|(?:migrain|enlarg)e|zol(?:pidem|oft)|ringtones|singulair|generic|\.\.\.|xanax|buy)
なかなか面白いライブラリですね。
需要ないかもしれませんが、これを使ってNP_BlackListを書き直したりするとちょっとは動作が速くなったりするかもしれません。
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4546
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
« 警察がケータイのGPS情報の利用を開始 :: 日本一短いトンネル »
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(112110)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110747)
3 . 年次の人間ドックへ(110352)
4 . 2023 年分の確定申告完了!(1つめ)(109905)
5 . 三菱鉛筆がラミーを買収(109803)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110747)
3 . 年次の人間ドックへ(110352)
4 . 2023 年分の確定申告完了!(1つめ)(109905)
5 . 三菱鉛筆がラミーを買収(109803)
cles::blogについて
Referrers