「Google Reader Auto Read Ads」はタイトルが「PR:」「AD:」「[PR]」で始まるRSS広告を自動的にクリックして既読にしてくれる、Google Reader用のGreasemonkeyスクリプトです。
「PR:」「AD:」「[PR]」これらが含まれている記事は高さを0にした上で既読にしているようなので、広告が目立たず、フィルタリングとして役に立ちます。この記事では上記の3つで始まるRSS広告だけではなく、タイトル中やタイトル末に特定の言葉が含まれる広告についても排除できるようにする方法を紹介します。(管理者の覚書です)
スクリプト内の15行目
if (title.textContent.match(/^(PR:|AD:|\[PR\])/i)) {
という行に注目します。この行のmatch(/パターン/)内に書かれている文字列が含まれている記事を広告とみなしています。
パターンは正規表現で書かれています。それでは最初に、今書かれている正規表現の説明に入ります。
^先頭
()グループ化
| 論理和(hogeまたはfooというのようにどれか一つが当てはまれば良い)
i大文字小文字区別なし
\[と\]は[]がメタ文字(正規表現内で使われる特別な文字)のため それと区別するために\が付けられています。つまり、[PR]という文字列を表します。
これらからmatchの中に書かれている正規表現の意味は以下のようになります。
記事タイトルの先頭にPR:またはAD:または[PR]が付いているもの。大文字と小文字を区別しない。
それでは、排除する広告の追加するための正規表現に入ります。
先頭に特定の文字が含まれる広告
match(/^(PR:|AD:|\[PR\]|広告)/i)
|広告という文字列を追加しました。これで先頭に広告と付いているものに対してもマッチします。
タイトル中に特定の文字が含まれる広告
match(/^(PR:|AD:|\[PR\])|(広告)/i)
|(広告)という文字列を追加しました。広告という一つの文字列しか無いので()を付ける必要はありませんが、分かりやすくするためにつけてあります。個数を増やすのであれば|(広告|広告2)というようにしてください。
タイトル末に特定の文字が含まれる広告
match(/^(PR:|AD:|\[PR\])|(広告)$/i)
コメント