超初心の正規表現
先だってある記事を書いたら・・・・なんかトンでもなくアクセスが増えた(^^;。
通常30アクセスも無い・・・・超辺境であるのはリンクを殆ど張らずに孤立しているからだが、アクセスが増えようが別段何か有るというわけでも無い。
丁度最近コメントスパムが横行していたので下の実験やるために、立て続けに似たような記事を連発してみた。
ウィニー規制の話は世間の興味が深いらしく、やはりアクセスの伸びは尋常じゃ無かったです(^^;。
さて私が書いているこのfc2ブログであるが、最近コメントスパムに対するフィルターとして「正規表現」を使えるようになった。
エディターと言うソフトすら触った事の無い方には・・・正規表現って?????となるだろうが、これを説明するのは少々難しい(^^;、まぁ大体次のようなものと思って下さい。
文字列 「○×※・・・・」が有ったとします、この中の○×※が実は間違っており「×※○・・・・・」だったとします、しかもこれが膨大なテキスト中に何度も出てくるとしたら?
この様な単純変換は、「検索・置換」と言う機能で簡単に修正できます。例え使ってるのがワープロでも備わっています。
次に貴方が仮に本を書いたとします、全て書き上げた時点で・・・・「P108ページ参照」と言った案配の参照先ページを勘違いしており、実際は112ページと4ページ後ろだった事が判明したとします。おまけにこの様な参照例は沢山別ページに張られていますが、単純に全部4ページ後ろにずらす操作が必要になったとします。
先程の「検索・置換」ではこの様なケースには対応出来ません。「ページ参照」で検索して人力で訂正するには余りにも作業が多い・・・・何とか楽できないだろうか?・・・・そこで正規表現が威力を発揮します。
今回の例では「Pxxxページ参照」とxxxの部分が不定になるわけですが、逆から言えば下のような検索が出来れば良いわけです。
【先頭に P 続いて何でも良いから数字が連続し その後ろに ページ参照 が並ぶ文字列】
これを正規表現で表すと P[0-9]+ページ参照 で良いのです。
[0-9] の部分は【0から9までの数字のどれでも良い】と言う意味になります
その次に + が有りますが、これは【その直前に指定した文字の1回以上の繰り返し】を意味します。
コレが何の役に立つのか?ですが、実際に上の例ではチョイと文法が難しいので詳細は割愛しますが、数字部分を読み込んだらその数字に4足した値を戻し、元の位置に置換出来れば良いわけで、この様なテキストの修正を行うソフトが「sed」と呼ばれているものです。そしてこの様な指示を与えるのがスクリプトと呼ばれる簡単なプログラムですが・・・・結構奥が深いです。
もっと単純な置換作業ならば、正規表現が扱えるテキストエディタで処理できます。
私はMacでJeditと言うソフトを使っていますが・・・・面白いことに 「改行」も文字として扱えるので重宝しています。
さてさて判って貰えましたでしょうか?(^^;(大汗)。
結局正規表現は 【特定のパターンに合致する 文節又は文章を 見つけ出す】 訳です。
此処から下は例としてアダルトサイト誘導目的のスパム例
------------------
・・・・の過去がこの流出画像と動画で明らかになります・・・
ファッション雑誌『ageha』の読者モデルがAVに出演していた!!中出しされてる画像・動画あり
元バックバンドが流出させた全裸生着替え盗撮映像
過去のポロリ水着画像、昔の怪しいバイト
-----------------
一寸ばかし嫌になりますが、実際のスパム被害の文面例です。
ここで、良く上の文面を見ると・・・・気が付くのは
流出、AV、中出、盗撮、全裸、生着替、ポロリ、水着 などという語彙と
画像、映像、動画 などという語彙がセットになっています。
お判りですね、このセットを一括登録し、引っかかったらスパムと判断し書き込み拒否処理に廻せば良いわけです。
そのセット文例が
[流出|AV|中出|盗撮|全裸|生着替|ポロリ|水着].*[画像|映像|動画]
この一行で上の4例全てが引っかかります。
組み合わせ24通りを一行で表現し、かつ語彙同士間にどんな文字が有ってもOKです。
並べた語彙を増やしていけば・・・・かなり防げる様になるはずです。
この機能を使う気になったのが、先日知人からコメントできないとの話を聞いたからで、禁止ワードのゾーンが広すぎたからでした。
さて設定したは良いが・・・・どうなるでしょうか?
通常30アクセスも無い・・・・超辺境であるのはリンクを殆ど張らずに孤立しているからだが、アクセスが増えようが別段何か有るというわけでも無い。
丁度最近コメントスパムが横行していたので下の実験やるために、立て続けに似たような記事を連発してみた。
ウィニー規制の話は世間の興味が深いらしく、やはりアクセスの伸びは尋常じゃ無かったです(^^;。
さて私が書いているこのfc2ブログであるが、最近コメントスパムに対するフィルターとして「正規表現」を使えるようになった。
エディターと言うソフトすら触った事の無い方には・・・正規表現って?????となるだろうが、これを説明するのは少々難しい(^^;、まぁ大体次のようなものと思って下さい。
文字列 「○×※・・・・」が有ったとします、この中の○×※が実は間違っており「×※○・・・・・」だったとします、しかもこれが膨大なテキスト中に何度も出てくるとしたら?
この様な単純変換は、「検索・置換」と言う機能で簡単に修正できます。例え使ってるのがワープロでも備わっています。
次に貴方が仮に本を書いたとします、全て書き上げた時点で・・・・「P108ページ参照」と言った案配の参照先ページを勘違いしており、実際は112ページと4ページ後ろだった事が判明したとします。おまけにこの様な参照例は沢山別ページに張られていますが、単純に全部4ページ後ろにずらす操作が必要になったとします。
先程の「検索・置換」ではこの様なケースには対応出来ません。「ページ参照」で検索して人力で訂正するには余りにも作業が多い・・・・何とか楽できないだろうか?・・・・そこで正規表現が威力を発揮します。
今回の例では「Pxxxページ参照」とxxxの部分が不定になるわけですが、逆から言えば下のような検索が出来れば良いわけです。
【先頭に P 続いて何でも良いから数字が連続し その後ろに ページ参照 が並ぶ文字列】
これを正規表現で表すと P[0-9]+ページ参照 で良いのです。
[0-9] の部分は【0から9までの数字のどれでも良い】と言う意味になります
その次に + が有りますが、これは【その直前に指定した文字の1回以上の繰り返し】を意味します。
コレが何の役に立つのか?ですが、実際に上の例ではチョイと文法が難しいので詳細は割愛しますが、数字部分を読み込んだらその数字に4足した値を戻し、元の位置に置換出来れば良いわけで、この様なテキストの修正を行うソフトが「sed」と呼ばれているものです。そしてこの様な指示を与えるのがスクリプトと呼ばれる簡単なプログラムですが・・・・結構奥が深いです。
もっと単純な置換作業ならば、正規表現が扱えるテキストエディタで処理できます。
私はMacでJeditと言うソフトを使っていますが・・・・面白いことに 「改行」も文字として扱えるので重宝しています。
さてさて判って貰えましたでしょうか?(^^;(大汗)。
結局正規表現は 【特定のパターンに合致する 文節又は文章を 見つけ出す】 訳です。
此処から下は例としてアダルトサイト誘導目的のスパム例
------------------
・・・・の過去がこの流出画像と動画で明らかになります・・・
ファッション雑誌『ageha』の読者モデルがAVに出演していた!!中出しされてる画像・動画あり
元バックバンドが流出させた全裸生着替え盗撮映像
過去のポロリ水着画像、昔の怪しいバイト
-----------------
一寸ばかし嫌になりますが、実際のスパム被害の文面例です。
ここで、良く上の文面を見ると・・・・気が付くのは
流出、AV、中出、盗撮、全裸、生着替、ポロリ、水着 などという語彙と
画像、映像、動画 などという語彙がセットになっています。
お判りですね、このセットを一括登録し、引っかかったらスパムと判断し書き込み拒否処理に廻せば良いわけです。
そのセット文例が
[流出|AV|中出|盗撮|全裸|生着替|ポロリ|水着].*[画像|映像|動画]
この一行で上の4例全てが引っかかります。
組み合わせ24通りを一行で表現し、かつ語彙同士間にどんな文字が有ってもOKです。
並べた語彙を増やしていけば・・・・かなり防げる様になるはずです。
この機能を使う気になったのが、先日知人からコメントできないとの話を聞いたからで、禁止ワードのゾーンが広すぎたからでした。
さて設定したは良いが・・・・どうなるでしょうか?

