Tweenで使えそうな正規表現

フォロー数が増えると、ノイズも増えるもの。
あまり必要としていない、程度のものならいいんですが、
大量に流れて邪魔になるようなものは別場所に移したい!
ということで、Tweenで実際に使っている正規表現をいくつか紹介してみます。
Tweenの正規表現の詳しい情報は正規表現について - Tween Wiki - Tween - OSDNが参考になります。

使い方

Tweenで適当にフィルタリングしたものを溜めるタブを作って、
そのタブの振り分けルール編集で、新規に正規表現のルールを追加します。
単一条件の発言内容の部分に左右両端の "/" を消して貼り付ければOKです。

3回以上、無言RTされてきたつぶやき or 2回の無言RTをQTしたつぶやき

/(Q|R|Q|R)(T|T) @.+:? (Q|R|Q|R)(T|T) @.+:? (Q|R|Q|R)(T|T) @.+:?/
    • RT @hoge: RT @bar: RT @foo: RT推奨
    • 何これ QT @hoge: RT @bar: RT @foo: これを見た人はRTしてください
    • RT @a: RT @b: RT @c: RT @d: RT @e: RT @f: 無言RT怖い

募集系で非公式RTされてきたつぶやき

/ (Q|R|Q|R)(T|T) @.+:? (\[|\(|(|【)((.+(募|ぼ))|質問)(\]|\)\)|】)/
    • あ RT @hoge: い RT @bar: あ RT @foo: あ RT @mofu: 【ゆるぼ】「あ」と「い」、どちらが好き?
    • あ RT @mofu 【急募】「あ」と「い」、どちらが好き?
    • H QT @hoge 【質問】好きなアルファベット


かなりキツメの条件なので、2人以上がRT回答してるものや、急募は除く、などの場合は次のようにします。

  • 2人以上がRT回答しているもの(1人だけが回答してる場合はマッチしません。)
/ (Q|R|Q|R)(T|T) @.+:? .+ (Q|R|Q|R)(T|T) @.+:? (\[|\(|(|【).+(募|ぼ)(\]|\)\)|】)/
  • 急募は除く
/ (Q|R|Q|R)(T|T) @.+:? (\[|\(|(|【)(?!急).*(募|ぼ)(\]|\)\)|】)/

挙手系のRT

(ノ|ノ)( | |)(Q|R|Q|R)(T|T)

いっそ多段RT/QTにサヨナラしちゃう

  • 2人まではマッチせず、3人以上がRT回答(あるいは無言RT)していればマッチする
/.*(Q|R|Q|R)(T|T) @.+:? .*(Q|R|Q|R)(T|T) @.+:? .*(Q|R|Q|R)(T|T) @.+:?/
  • 人数を増減させるなら、「.*(Q|R|Q|R)(T|T) @.+:?」の部分を増減させればOK
  • 実は募集系や質問系もまとめてフィルタリングされるので万能
  • これでTLがとてもスッキリした

もう少し頑張る

  • 2人でもマッチする。Tweetie対応版。
/.*(((Q|R|Q|R)(T|T) @.+:?)|((\(|\/)?via @?.+\)?)).*(((Q|R|Q|R)(T|T) @.+:?)|((\(|\/)?via @?.+\)?))/
  • 人数の増減は、「.*(((Q|R|Q|R)(T|T) @.+:?)|*1」の部分を増減さえればOK
  • これで 「(via @hoge)」 や 「/via @hoge」にもマッチする
  • さらにはよく分からないこんなのもマッチする → 「RT @hoge: これはすごい RT bar (via foo)」
  • しかし重い

もっと頑張る

@yoshi_yuu さん、どうもありがとうございます!
このままだと、「これはすごい RT bar (via @foo)」(TweetieのRT)にもマッチしてしまうので、
とりあえず[]だけ使って・・

.*(([QRQR][TT][  ]@.+:?)|([(/]?via @?.+\)?)){2}

こうしてみた。

もう少し!

鋭い!ということで、\sにしました。ついでに、たまにスペースを入れていない人(RT@hoge)みたいな人もいるので、0〜1文字マッチにしました。

.*(([QRQR][TT]\s?@.+:?)|([(/]?via @?.+\)?)){2}
  • これでかなりスッキリ!
  • 相変わらずえりっくたん可愛い

正規表現じゃないけど、個人的に入れてあるフィルタリング

  • ソースが twittbot.net になっているもの
    • フォローしてるBOTはtwittbot.net製じゃないので、定期POSTがきれいさっぱり隔離される。

*1:\(|\/)?via @?.+\)?