Proxomitron フィルタ ..
[2ch|▼Menu]
369:名無しさん@お腹いっぱい。
07/02/18 02:15:11 yl8Igbxg0
>>368
あ、すみません自己解決しました。

370:名無しさん@お腹いっぱい。
07/02/18 04:32:39 9V28jqDL0
一度質問したんだから、解決したなら解決済みのフィルター書くのが礼儀。
運がよければアドバイスも貰えるかもしれないし。

371:369
07/02/18 14:13:40 yl8Igbxg0
>>370
omitronのバージョン違いでした。

372:名無しさん@お腹いっぱい。
07/02/18 16:47:08 Ad13aOLe0
URLリンク(web.archive.org)

↑のように Internet archive で日本語ページを見ると文字化けするのは、
ヘッダに charset=UTF-8 と書いてあるからだと思ったので
次のようなフィルターを書いた。でも化け直らず。

[HTTP headers]
In = FALSE
Out = TRUE
Key = "web.archive.org charset (Out)"
URL = "*web.archive.org"
Match = "charset=UTF-8"
Replace = "charset=Shift_JIS"

そもそもの着眼点が間違ってるかもだけど
とりあえずフィルタの書き方は合ってる……?

373:名無しさん@お腹いっぱい。
07/02/18 17:19:00 xJ9Dcg+D0
>>372
確かに素のIEで見ると文字化けしてるんで調べてみたら
In = TRUE
Out = FALSE
Key = "Content-Type: charset deleter (2006.09.09) (in)"
URL = "web.archive.org/"
Match = "text/html; charset=*"
Replace = "text/html"
これが効いてたよ

374:名無しさん@お腹いっぱい。
07/02/19 01:22:09 7BUQV5gZ0
>>372
>とりあえずフィルタの書き方は合ってる……?
残念ながら…

375:名無しさん@お腹いっぱい。
07/02/19 01:22:32 s3bBYpWe0

       /::^'´::::::::::::i、::::::::::::::::::::::::::::\
     ‐'7::::::::::::::::::::::::ハ:ハ::|ヽ:::;、::::::::::::丶
     /::::::::::::::/!i::/|/  ! ヾ リハ:|;!、:::::::l
    /´7::::::::::〃|!/_,,、   ''"゛_^`''`‐ly:::ト   
      /|;ィ:::::N,、‐'゛_,,.\   ´''""'ヽ  !;K
        ! |ハト〈  ,r''"゛  ,       リイ)|    死ねばいいと思うよ
          `y't     ヽ'         //
         ! ぃ、     、;:==ヲ   〃     
         `'' へ、   ` ‐ '゜   .イ
              `i;、     / l         
                〉 ` ‐ ´   l`ヽ
            / !        レ' ヽ_


376:名無しさん@お腹いっぱい。
07/02/19 03:51:43 JCVsqpGD0
>373
それ、自分が書いたやつですな。

>372
それだと書き換えている意味がないわな。化けて当然。
Shift_JISだろうとUTF-8だろうと、
文書の中身とヘッダの文字コードが一致していなければ化ける。
web.archive.org の管理者が適当にUTF-8を指定しているのが原因なので、
web.archive.org の管理者が改善してくれればいいのだが。

377:名無しさん@お腹いっぱい。
07/02/19 04:57:29 3/veHM8c0
おまえが書いたから何なんだ

378:名無しさん@お腹いっぱい。
07/02/19 05:20:58 Z4fMRv340
自己主張したい年頃なのさ。

379:名無しさん@お腹いっぱい。
07/02/19 06:10:58 ZEWRH1fl0
答えてくれてるのに何故叩く?
文句言うなら、何のレスも返さない372のほうだろ。

380:名無しさん@お腹いっぱい。
07/02/19 15:09:53 Jr1TlpmL0
YouTubeのタイトル文字化けを直すフィルタってありませんか?

381:名無しさん@お腹いっぱい。
07/02/20 11:00:51 QUSe3g/S0
叩きたいお年頃なのさ。

382:372
07/02/21 02:57:48 QShqnMMI0
チェック怠ってて済みません。

>>373
わざわざ調べてくれてありがとう……! 感無量です。バッチリです。

>>374
……出直してきますっ。

>>376
そもそもの間違いは、フィルタ名に Content-Type: が入ってなかったことでした。鬱死。
以下のフィルタで特定の日本語ページの Internet Archive は文字化けしなくなりましたが、
ドイツ語ページとかだと当然のように化けます。役立たず。

[HTTP headers]
In = TRUE
Out = FALSE
Key = "Content-Type: web.archive.org charset (in)"
URL = "web.archive.org/"
Match = "text/html; charset=UTF-8"
Replace = "text/html; charset=Shift_JIS"

383:名無しさん@お腹いっぱい。
07/02/21 23:44:53 n3eFdYWu0
質問なんだけど、Yahooの広告を消す場合、Yahooの広告だけを消すフィルターを入れるのと、リストがたのフィルターで登録しておくのではどちらが処理的にかるいのでしょうか?

384:名無しさん@お腹いっぱい。
07/02/22 01:04:13 1euCCJ0E0
自 分 で 調 べ ろ

385:名無しさん@お腹いっぱい。
07/02/22 01:19:28 eNeppJ8q0
どうなんだろう。
1GHz超えなら$LSTであらゆるmatchぶち込んでも全然気にならないけど。
場合わけしてみると
1. URLマッチングでyahoo.co.jpだけでTXT内では$URL(URLリンク(tv.yahoo.co.jp)<))
として分岐させる。
3.$LST使わないでtv.yahoo.co.jp、weather.yahoo.co.jp各々フィルタ作成。
俺はわからない・・w

386:名無しさん@お腹いっぱい。
07/02/22 01:59:37 zkphvezb0
Google Image: Image Change (070124)
また駄目になりました。
お願いします。

387:名無しさん@お腹いっぱい。
07/02/22 02:03:49 XwojGfDn0
[Patterns]
Name = "Google Image: Image Change (070115)"
Active = TRUE
URL = "images.google.co(m|.jp)/"
Limit = 128
Match = "<a href="\+e\+b.m\+"><img"
Replace = ""+(b.a=b.c='')+""
"<a target=\\"_blank\\" href=\\""+decodeURIComponent(e.match(/[?&]imgrefurl=([^&]+)/)[1])+"\\">ref</a> / "
"<a target=\\"_blank\\" href=\\""+(b.b.indexOf("://")<0?"URLリンク(":"")<))+b.b+"'"
"}\\"$STOP()"

388:名無しさん@お腹いっぱい。
07/02/22 02:06:09 N4Nfl5NR0
googleイメージがまた戻ってるw
ふるいの消しちゃったよ・・・

389:名無しさん@お腹いっぱい。
07/02/22 02:08:21 N4Nfl5NR0
ってログ読んでるうちに書き込みが!
ばっちり動いたよ。GJ!

390:名無しさん@お腹いっぱい。
07/02/22 02:25:52 zkphvezb0
>>387
ありがとう。でもうちの環境だと駄目みたいです。
それでこれに戻したらいけました。
[Patterns]
Name = "google image (061103) +js+"
Active = TRUE
URL = "images.google.co(.jp|m)/"
Limit = 1024
Match = "var\ e=\"/imgres\?imgurl=\"\+\0\+\"\&imgrefurl=\"\+\1\+[^;]+;c\+=[^;]+;[^;]+;[^;]+;$STOP()"
"$SET(9=var e=unescape(\1.match(/^[^&]+/));var proxvar=\0;"
"c+="<a href="+e+" target=_blank>imgref</a> / <a target=_blank href="+unescape(proxvar)+">img</a><br>"
"<img ondblclick='this.src="+'"";this.style.display="none"'"
"+"' onclick='if(this.a){this.src=this.a;this.a=0}else{this.a=this.src;this.src="+'"http://'+unescape(proxvar)+'"}'"
"+"' src=/images?q=tbn:"+b.d+proxvar+">";)"
"|"
"<a href=/imgres\?imgurl=[^&]+\&imgrefurl=([^&]+)\0[^>]+> <img[^>]++(src=/images\?q\=tbn:[^:]+:([^ >]+)\2)\1*</a>"
"$SET(9=<a href="$UESC(\0)" target="_blank">imgref</a> / <a href="\2" target="_blank">img</a><br>"
"<img ondblclick="this.src='';this.style.display='none'" onclick="if(this.a){this.src=this.a;this.a=0}else{this.a=this.src;this.src='\2'}"\1</a>)"
Replace = "\9"



391:名無しさん@お腹いっぱい。
07/02/22 18:51:13 n67R39dJ0
このソフトで、URLリンク(www.google.com)への記録を残さないために、
該当するスクリプトを読み込まないようにとかって可能ですか?

392:名無しさん@お腹いっぱい。
07/02/22 21:40:12 doWBmrzQ0
[HTTP headers]
In = FALSE
Out = FALSE
Key = "URL: 2ch redirector (oo.2ch2.net) (in)"
Match = "$RESP(302*)URLリンク([^.]+.)<))"

In = FALSE
Out = FALSE
Key = "URL: 2ch redirector (p2.2ch.net) (in)"
Match = "$RESP(302*)http://([^.]+.(2ch.net|bbspink.com))\1/test/read.cgi/\2/([^/]+)\3(/\4|)"
Replace = "$JUMP(URLリンク(p2.2ch.net))"

In = FALSE
Out = FALSE
Key = "URL: 2ch redirector (p2.chbox.jp) (in)"
Match = "$RESP(302*)URLリンク([^.]+.)<))"

In = FALSE
Out = FALSE
Key = "URL: 2ch redirector (snapshot.publog.net) (in)"
Match = "$RESP(302*)URLリンク([^.]+.)<))"


↑が効かないみたいですので、修正お願いします。

393:名無しさん@お腹いっぱい。
07/02/22 22:43:54 doWBmrzQ0
すいません。見れました。↑は無視してくださいゥ。

394:名無しさん@お腹いっぱい。
07/02/23 18:52:01 AiikQHrw0
URLリンク(www.youtube.com)
はバイパスしたいけど、
URLリンク(www.youtube.com)
はバイパスしたくないってのが書けないので助けてください

*youtube.com/watch\?v=([A-Za-z0-9_-]&[^\&])+

これで&が入ってるものを除外できるかと思ったんだけど
書き方が悪いのかそもそもを理解してないのかも分からんのです
何かと除外のところで躓いてあきらめてる

395:名無しさん@お腹いっぱい。
07/02/23 20:32:36 En/mF5T00
www.youtube.com/watch?v=(^*[&])
だと簡単すぎるかな

396:名無しさん@お腹いっぱい。
07/02/23 20:42:26 k6yS9SQt0
[^/]++youtube.com/watch\?=[^&]+(^?)

とすれば「URLは?を含むことがない」という条件を与えられる
(^?)は「もう何も続きませんよ」という印
もしかしたら[^\&]としないと動かないかもしれないけど、それは自分で検証してくれ

397:名無しさん@お腹いっぱい。
07/02/23 21:57:27 1mJJ69aB0
*youtube.com/watch\?v=[^&]+(^?)

398:名無しさん@お腹いっぱい。
07/02/23 21:58:27 1mJJ69aB0
1時間パソコンほったらかしにしてるあいだにかぶったorz

399:名無しさん@お腹いっぱい。
07/02/23 22:06:10 AiikQHrw0
あんがと!!!
なんとかできた!
これで夕立がまた使えそうです

400:名無しさん@お腹いっぱい。
07/02/25 00:51:04 SRmz9w6X0
>>391
ADListに www.google-analytics.com/urchin.js を追加。

401:名無しさん@お腹いっぱい。
07/02/25 01:24:02 7eejlz4U0
>>354
"2ch thread list Tabler [HOME]-R subback [070216]"
何故かまた効かなくなりました。
ページソースを見ても問題ないような気がするのですが・・・
お手数ですが、再び改訂版をお願いいたします。

402:名無しさん@お腹いっぱい。
07/02/25 18:04:00 K9lZt87Q0
>>401
俺の環境ではちゃんと動いてるんだが

403:名無しさん@お腹いっぱい。
07/02/25 22:53:43 FZ67Frsr0
390のフィルター、一昨日はいけたけどまたダメになってるね…
なんなんだGoogle image

404:名無しさん@お腹いっぱい。
07/02/25 23:33:03 ddW5q+L40
387は問題なく使えてる

405:名無しさん@お腹いっぱい。
07/02/26 00:16:46 EbqblFqF0
>>404
それが>>390と同じでうちだと>>387は動かないんだよ
なんだろうね

406:名無しさん@お腹いっぱい。
07/02/26 00:30:43 Fn52+iDi0
なにか他のフィルタが干渉してるのでは?
例えばAdd Link

407:名無しさん@お腹いっぱい。
07/03/02 12:05:17 dihVs1M00
静かですね

408:名無しさん@お腹いっぱい。
07/03/02 17:04:14 eAbtRiGR0
うちも >>405と同じでだめです。
4.4 4.5j フィルター全部はずしてもどっちもダメ
わがんね

409:名無しさん@お腹いっぱい。
07/03/02 18:51:02 KOh5VbwA0
スクリプトタグ無いの
urchinTracker();
って部分だけフィルターで消したいのですが、
タグ内の一部分だけ消す方法が良くわかりません。

どなたか教えてくれませんか?

410:名無しさん@お腹いっぱい。
07/03/02 20:18:25 fhmIoiDy0
>>387とか>>390って何?
Googleイメージで検索して出た画像クリックするとホームページじゃなしに
元のサイズで画像を表示するってフィルタ↓使ってたんだけど、使えなくなった
これの新しいのってあります?>>387>>390は違うみたいでした

Name = "Google: Replace natural sized img [2006.04.20]"
Active = TRUE
URL = "images.google.co(m|.jp)/im(ag|gr)es\? $TYPE(htm)"
Limit = 512
Match = "(<a\s[^>]++href=)\#$AV((/imgres\?imgurl=[^&]+(^*\&frame=small)?+)\0)(^(^[ >]))"
"$SET(#="\0&frame=small")|"
"<a\s[^>]++href=$AV((http(://|s://)?+)\0)[^>]+>"
" <img\s[^>]++src=$AV(/images\?q=tbn:[^:]+:$TST(\0))[^>]+> </a>"
"$SET(#=<img style="margin: 5px; border-style: none" src="\0">)$STOP()"
Replace = "\@\r\n"

411:名無しさん@お腹いっぱい。
07/03/02 20:33:19 HkvjeHx70
ようつべの認証が必要なページをスルーする方法ない?

412:名無しさん@お腹いっぱい。
07/03/02 20:34:32 HkvjeHx70
ちなみに直接flvにリダイレクトすればflv動画保存はできた。
でも動画タイトルとか説明とか載ってるページが見たい

413:名無しさん@お腹いっぱい。
07/03/02 20:42:55 YSlvBEF80
>>410
387を使ってるけどクリックすると元画像サイズになるよ
>>409
文面通りの意味だと
Limit 1024 (適当)
Match <script\s\0urchinTracker\(\);\1</script>
Replace <script \0\1</script>
こういう事?
もっと深い意味があるのかな

414:名無しさん@お腹いっぱい。
07/03/02 20:45:52 fhmIoiDy0
>>413
ありがとう
マジですか、俺>>387>>390ともに試したけど全然だめでした
もしかして、Javaとかオンじゃないとだめなのかなあ
>>410のはJavaなしでもいけたんだけど、う〜ん

もう一度試してきます

415:名無しさん@お腹いっぱい。
07/03/02 20:53:36 fhmIoiDy0
だめだ、出来ないorz
Firefox使ってるんだけど、もしかしてIE限定かな?

416:名無しさん@お腹いっぱい。
07/03/02 20:55:22 YSlvBEF80
>>414
ほんとだ
Script Offだと効かないね
387効かないって人が多かったのはそのせいだったのか

417:名無しさん@お腹いっぱい。
07/03/02 20:56:49 YSlvBEF80
ちなみに私はIEエンジンのタブブラウザですね

418:名無しさん@お腹いっぱい。
07/03/02 21:00:20 fhmIoiDy0
>>416
そうなんだ
Firefox2.0.0.2でJavaオフ = 普通にホームページに飛ばされる
Firefox2.0.0.2でJavaオン = サムネイル画像すら表示されず、なすすべなし(泣)

誰かFirefox用の>>410のフィルタ作ってくださいm(_ _)m

419:名無しさん@お腹いっぱい。
07/03/02 21:14:30 RWK0oXTa0
FxならgreasemonkeyいれてGreased Lightbox使った方が便利だと思う
GoogleImage以外でも使えるし。


420:名無しさん@お腹いっぱい。
07/03/02 21:46:35 WUebI47X0
このスレはOperaユーザが多いからそのせいもあるんじゃない?

421:名無しさん@お腹いっぱい。
07/03/02 22:51:58 fhmIoiDy0
>>419
Greasemonkeyは入れてるけど、Greased Lightboxってのは初耳です。
さっそく探してきます、ありがとう

422:409
07/03/02 23:04:03 KOh5VbwA0
>>413
どうもです。
狙いはその通りで、試してみましたが、
ロード時に読み込まれるので、後ろの</script>が読み込まれる前に
urchinTracker()を呼び出そうとするみたいで、

とりあえず、後ろの</script>を削って
Match <script\s\0urchinTracker\(\);\1

でやってみたら動いてるようです。

こんな感じでいいんでしょうか?

423:名無しさん@お腹いっぱい。
07/03/03 00:09:34 kMgiw1TB0
>>422
ん、テストページが無いので良くわからない。
入れ子でおかしくなるかもなので
Match
$NEST(<script\s[^>]\0+>,\1urchinTracker\(\);\2,</script>)
Replace
<script \0>\1\2</script>
のほうが安全かな。

424:名無しさん@お腹いっぱい。
07/03/03 06:33:14 KNGGVaeK0
>>422
>>413を使えばブラウザにurchinTracker();が削除されHTMLたソースが渡されるから
urchinTracker();が動くなんてことはありえないよ。

425:名無しさん@お腹いっぱい。
07/03/03 06:34:55 KNGGVaeK0
↑フィルターが正しく動いてればの話ね。 limitが足りなかったとかそういう原因かも知れない。

426:名無しさん@お腹いっぱい。
07/03/03 06:53:45 UgcnQ/NE0
URLリンク(dat.2chan.net)
上の掲示板への特定のIPからの書き込みを返信の場合はそれのみ
投稿の場合は広告、画像から子ツリーまですべて
痕跡も残さず消せるフィルターを作ってもらえないでしょうか
おねがいします

427:名無しさん@お腹いっぱい。
07/03/03 07:07:54 KNGGVaeK0
ふたばのオミトロンスレ見れよ

428:名無しさん@お腹いっぱい。
07/03/03 07:13:16 UgcnQ/NE0
気づきませんでした
いってきます

429:409
07/03/03 09:31:45 fwIzo8pg0
>>423
>>424
どうもです。
いろいろ勘違いがあったみたいです。
とりあえず以下のようにしました。

まれに
urchinTracker();
に引数が入ってるのがあるのでMatchに*を入れてみました。
後はBounds指定ってこれだと意味ないんでしょうか?

[Patterns]
Name = "Kill urchinTracker"
Active = TRUE
URL = "$TYPE(htm)"
Bounds = "<script($INEST(<script,</script)</script>|*)"
Limit = 1024
Match = "<script\s\0urchinTracker\(*\);\1</script>"
Replace = "<script \0\1</script>"

430:名無しさん@お腹いっぱい。
07/03/03 11:08:29 KNGGVaeK0
inestの使い道が違う。 この場合はnest。

$NEST(<script,\1urchinTracker\(\);\2,</script>)

これで十分だからboundsはいりません。

431:名無しさん@お腹いっぱい。
07/03/03 19:14:24 7WHuJ2Be0
>>420
Operaなら確かGreasemonkeyいれないで直にGreased Lightbox使えた気がする。


432:409
07/03/03 19:43:56 fwIzo8pg0
>>430
ありがとうございます。NESTの件、了解しました。

また別件というか別パターンが出てきました。
<a href="/index.html" onclick="javascript:urchinTracker('/sample/2007/misc/');">
みたいな感じでタグのイベント属性で追加されるパターンがあるみたいです。

なんかこのパターンを考えるとキリが無いのですが、
このパターンも消すとするとフィルターは別途書く必要があるので負荷が高くなるので、
ダミーのスクリプトを入れるフイルターを作った方が良いかと思うようになりました。

<head>タグの直後あたりにスクリプトブロック込みでダミーのurchinTracker()ファンクションを入れる
事で対応しようかと思い、以下の感じで作りましたが、なんか手抜きというか情けないような内容です。
アドバイスいただけますでしようか。

[Patterns]
Name = "New HTML filter"
Active = TRUE
URL = "$TYPE(htm)"
Limit = 256
Match = "<head>"
Replace = "<head>"
"<script type="text/javascript">function urchinTracker(){};</script>"

433:名無しさん@お腹いっぱい。
07/03/03 20:41:14 kMgiw1TB0
ひとつのフィルタに纏める事できるよ
match欄
matchpattern1 $SET(9=replacepattern1)|
matchpattern2 $SET(9=replacepattern2)
replace欄
\9
みたいな感じ

434:名無しさん@お腹いっぱい。
07/03/03 20:59:36 kMgiw1TB0
具体的に書くと
例えばこんな感じ。
これだとurchinTrackerの記述のあるscriptタグ全部消しちゃうけど。
Match
$NEST(<a\s[^>]++href=$AV(*urchinTracker*),</a>) $SET(9=)|
$NEST(<script\s[^>]+>,*urchinTracker*,</script>) $SET(9=)
Replace
\9
>>432なんだけど
空の関数の後に実際のソースに実態があれば効かないんじゃない?
テストしてないからわからないけど

435:名無しさん@お腹いっぱい。
07/03/03 21:01:30 NAXtb9SN0
>>432
その方法なら1ページにつき一度のマッチングで済むので$STOPコマンドが使えますよ。

436:名無しさん@お腹いっぱい。
07/03/03 21:24:52 jp1tAzDC0
<script\s[^>]+>

437:名無しさん@お腹いっぱい。
07/03/03 21:26:50 jp1tAzDC0
早漏した

<script\s[^>]+>って<script>にマッチしたっけか
こっちで確認した限りではしないようだが

438:名無しさん@お腹いっぱい。
07/03/03 21:36:53 pF+sHsLa0
あぁ
<script>だけの場合? それは想定外でした。

439:名無しさん@お腹いっぱい。
07/03/04 00:06:25 tBx8TrfH0
↓これじゃだめなの?

400 :名無しさん@お腹いっぱい。:2007/02/25(日) 00:51:04 ID:SRmz9w6X0
>>391
ADListに www.google-analytics.com/urchin.js を追加。

440:名無しさん@お腹いっぱい。
07/03/04 00:19:46 73lxeMGz0
これがONになっているとアマゾンで検索したときに画像が出ません。
どうしてですか?

Name = "Banner Blaster (limit text)"
Active = TRUE
Multi = TRUE
Bounds = "<a\s[^>]++href=*</a>|<input*>|<ilayer*</ilayer>|<iframe*</iframe>|<object*</object>"
Limit = 900
Match = "(<(ilayer|iframe|object)*|\1<i(mg|mage|nput)*src=$AV(*)*>\3)"
"&(*(href|src)=$AV($LST(AdKeys)*)|"
"*URLリンク(*<i)(mg|mage|nput)\s(*>&&"
"(*width=[#460-480]&*height=[#55-60]*)|"
"(*width=[#88]&*height=[#31]*)))"
"&(*alt=$AV((?+{18})\2*|\2)|$SET(2=Ad))"

441:409
07/03/04 01:13:16 9b7LgS8o0
>>434
本物の関数は常に別ファイルで読み込まれるので、AdlistでBlockしてます。

>>435
どうもです。
HEADなんで$STOPは効果的ですね。

>>439
それだけだと、関数の呼び出しが残っているので、
Javascriptエラーが毎回でるので。

結果はこんな感じでにしました。
[Patterns]
Name = "Kill urchinTracker"
Active = TRUE
URL = "$TYPE(htm)"
Limit = 256
Match = "<head*>$STOP()"
Replace = "<head>"
"<script type="text/javascript">function urchinTracker(){};</script>"

このフィルターは他人の所に足跡を残したくないのではなくて、
自分が管理してるサイトの分析に自身のアクセス記録を入れない為なので、
実際にはURLには実サイト名が入ってます。

Googgle Anlytics側にもフィルターがあるのですが、
出先で内容を確認したりする時のまでフォローしきれないので。

442:名無しさん@お腹いっぱい。
07/03/04 07:26:16 2pUUjDDU0
OperaでUAがMozilla含まれてないからこれでUA変更してるんだけど
バージョン変わるたびに修正するの面倒だから変更するときに
変更元のUAのバージョンつけられないかな?

今こんな感じの設定
key:User-Agent: Opera 9 (out)
URL:
Match:Opera
Replace:Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; U; ja) Opera/9.10

443:名無しさん@お腹いっぱい。
07/03/04 13:29:48 hlyDBHQO0
[HTTP headers]
In = FALSE
Out = TRUE
Key = "User-Agent: Opera (out)"
Match = "Opera/\0(\s|(^?))"
Replace = "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; U; ja) Opera/\0"

444:名無しさん@お腹いっぱい。
07/03/04 13:41:01 2pUUjDDU0
>>443
ありがとうございます〜

445:名無しさん@お腹いっぱい。
07/03/05 23:25:27 4aRF74xu0
URLリンク(www.jtw.zaq.ne.jp)
↑のサイトの歌詞を表示してるページで
コピペや右クリックができるフィルタ希望です


446:名無しさん@お腹いっぱい。
07/03/05 23:36:20 E9YpSH1g0
華麗にスルー

447:名無しさん@お腹いっぱい。
07/03/05 23:41:29 2RxO/zSP0
www.jtw.zaq.ne.jp/animesong/y.js への接続を遮断するだけ

448:名無しさん@お腹いっぱい。
07/03/05 23:42:34 gh6EZIJM0
>>445
from
<BODY BGCOLOR="#CCFF99" onselectstart="return false" oncontextmenu="return false">
to
<BODY BGCOLOR="#CCFF99" onselectstart="return true" oncontextmenu="return true">

449:名無しさん@お腹いっぱい。
07/03/06 12:11:59 iB1jvKZy0
任意のタグ群から任意の要素群を除去するフィルタを書いてみた。
とりあえずはbodyとimgからoncontextmenu, onselectstaart, oncopyを除去できる感じに。
ひどいスパデティ状態だけど要は<body >みたいなスペースが入らないようにしたかったので。

[Patterns]
Name = "oncontextmenu deleter"
Active = TRUE
Limit = 256
Match = "$NEST(<(body(^(^\s))|img(^(^\s)))\#,((\s|)on(contextmenu|selectstart|copy)=$AV(*)|((\s|)[^=\s]+(=$AV(*)|))\#)+,>)"
Replace = "<\@>"

450:名無しさん@お腹いっぱい。
07/03/06 12:13:41 iB1jvKZy0
書き忘れてたけどサンプル
before : <body onselectstart="return false" oncontextmenu="return false" bgcolor="#ccff99">
after : <body bgcolor="#ccff99">

451:名無しさん@お腹いっぱい。
07/03/06 14:43:34 9zhYO6rw0
Firefox のように、ブラウザ側で
コンテキストメニューを強制的に使用可能にする手もある。フィルタ不要だし。

452:名無しさん@お腹いっぱい。
07/03/06 19:03:44 mTAaejSY0
>>449
要望者ではないがGJ

453:名無しさん@お腹いっぱい。
07/03/06 20:12:47 5wFR0ABi0
>>449
恐ろしく細かなところなんだが
JISコードのページで「alt="連携"」と言う文字が含まれてたりするとダメだよね?

2バイト目が「"」とかの文字だと$AV系は誤爆するから

454:think ◆MM0nnAOCiQ
07/03/06 20:57:29 74I35w2I0
>>449-450
そのフィルタは <body bgcolor="#ccff99"> にもマッチしてしまう問題を持っていますね。
((\s|)[^=\s]+(=$AV(*)|))\# を (([^>]++)\#\son(contextmenu|selectstart|copy)=$AV(*))+{1,*} に変更してはどうでしょうか?

[Patterns]
Name = "oncontextmenu deleter type2 [2007/03/06]"
Active = TRUE
URL = "$TYPE(htm)"
Limit = 256
Match = "<(body|img)\#(^(^\s))"
"(([^>]++)\#\son(contextmenu|selectstart|copy)=$AV(*))+{1,*}"
Replace = "<\@"

455:名無しさん@お腹いっぱい。
07/03/06 22:42:58 +rFDbjSB0
Proxymoitronのフィルターなんですけど 以下のレスを参考にしたんですが、
もう少しキレイにするならどうしたらいいでしょう。


>【デボジット】Google AdSense初心者スレ 8PIN目
>スレリンク(affiliate板:370番)
>
>370 名前:クリックで救われる名無しさんがいる[] 投稿日:2007/03/05(月) 08:17:45 ID:5uG+lPlH0
>こんなの見つけたんだけど便利かな?
>URLリンク(isawseashell.blogspot.com)
>
>俺にはちょっとハードル高いんだけど、安心感が得られるならやろうかと思ってる。

[Patterns]
Name = "Adsense"
Active = TRUE
URL = "*.googlesyndication.com/$TYPE(htm)"
Limit = 1024
Match = "<a\s\0href="*123456789012"
Replace = "<a \0 href="about:blank"

これでやると、about:blank&nm=13 みたいに about:blnakの後ろにパラか残ってしまうんです。

実際のURLは
URLリンク(pagead2.googlesyndication.com)
みたいに入ってきてるんですが、タグ全体がフレームの中なので見えなくて どうやったら調べたりしたらいいかわからず困ってます。

456:名無しさん@お腹いっぱい。
07/03/06 23:18:09 ToBVIAPe0
マッチの部分をhref=$AV(*12345678912*)
にすりゃいいのでは。about:blnakはともかくProxymoitronってなんやねん。

457:名無しさん@お腹いっぱい。
07/03/07 17:22:42 /8mO2Jfl0
$NEST(<a\s(*href=$AV(\1)*|)&(*title=$AV(\3)*|)&(^(*(href|title)*)\7|)[^>]+>,\0,</a>)
aタグのhrefとtitleの値を\1,\3に順不同で入れるのには成功したんですが、
それ以外のものを\7に入れる事ができません。
とりあえず(^(*(href|title)*)\7|)としてますが効きません。
助言お願いします。
ソース例
<a href="/aaa/bbb/ここは1に" title="これは3に" class="これは7に">ここは0に</a>

458:449
07/03/07 18:08:54 JUv0ENxk0
思ったよりも反響があったようでビックリ。

>453
なるほど、そういうケースもあり得るのでしたら汎用フィルタとした使うためには手を加える必要がありますね。
手っ取り早いのは$AV(*)を使う代わりに [^=]+=[^ ]+ とすることでしょうか。
これでもまだ誤爆例がありましたら教えてください。
#ところで今までずっと[^\s]としていたのですがこれは大きな誤りであると分かりましたorz

>454
確かに、例えば <body> で終わらない全てのbodyタグに(極端な例では<body >にも)マッチしますが、そこに何か問題があるとは思えません。
<body bgcolor="#ccff99"> を挙げれば、それ全体を\#に代入して<\@>で出力しているので一見してムダではありますが。
そこで試しにプロファイルで速度比較をしてみました。
私のver1とthinkさんのver2では、ver2がver1の1.5倍多くの時間が掛かるようです。
<img alt="hogehoge" src="hogehoge.jpeg"> を29986バイト分だけコピペしたサンプルでの計測です。
<img alt="hogehoge" src="hogehoge.jpeg" oncopy="hogehoge"> とした場合も速度比はほぼ同じでした。
もしマッチングさせたくないという場合にはver2を選択すると良いでしょう。

459:名無しさん@お腹いっぱい。
07/03/07 18:16:46 eYPYjnoZ0
肝心の445が出てこない件

460:名無しさん@お腹いっぱい。
07/03/07 18:23:04 JUv0ENxk0
>457
目的がよく分からなんのですが、\1と\2と\3と\0に属性値を入れるわけですね。
\1はhrefに対応しなければならないんですか?
たいていの場合は必ずしもそういう対応関係を成り立たせなければならないわけではないと思いますが。
例えば
(href|title|((^(href|title)[^=])+))\1=$AV(\2) \s (href|title|((^(href|title)[^=])+))\3=$AV(\4) \s (href|title|((^(href|title)[^=])+))\5=$AV(\6)
とでもすれば\1と\2や\3と\4はセットなので、何が入ろうともかまわないということになります。
これで問題があるかはフィルタで何をしたいかによります。

ちなみにアスタリスク"*"をそういうふうに使う場合は
aタグを$NEST()で独立させたほうが良いです。
$NEST($NEST(<a\s,*hogehoge*,>),\0,</a>)

もう一度フィルタの目的をよく考えてから作り直しては?

461:449
07/03/07 18:28:11 JUv0ENxk0
>458について日本語のミスがありましたorz
>私のver1とthinkさんのver2では、ver2がver1の1.5倍多くの時間が掛かるようです。
1.5倍の時間が掛かる、もしくは0.5倍多くの時間が掛かる、に訂正します。
例えばver1で2sec要する場合にver2はおよそ3sec要します。

462:名無しさん@お腹いっぱい。
07/03/07 18:36:28 /8mO2Jfl0
>>460
目的はtitle欄にhref以下のurlその他をぶち込んでマウスを当てると見えるようにするためです。
ORで分岐すると順不同(hrefの前にtitleが来たり)のとき面倒なので&を使ってます。
ですから>>457の場合だとreplece欄でtitle="\1 \3"みたいに続けて記述します。

463:名無しさん@お腹いっぱい。
07/03/07 18:46:47 JUv0ENxk0
>462
つまりtitle要素があれば中身をhrefで書き換え、title要素がない場合はtitle="href属性値"を追加するということ?
言い換えればtitle要素があれば除去し、title="href属性値"を追加する、とでもすればうまくいきそうですな。
やり方はいくつもあると思うけど私ならこうやります。
その場合は&を使うよりはスタックを使ったほうがよさそうです。

464:名無しさん@お腹いっぱい。
07/03/07 18:57:41 JUv0ENxk0
チープな>449の焼き回しですが、一例として

マッチ欄
$NEST(<a(^(^\s)),(\s(title=$AV(*)|href=$AV(\0)|([^= ]+=$AV(*))\#))+,>)
置換テキスト
<a href="\0" title="\0" \@)


サンプル例
before : <a href="ljilfejalfejla" src="ljfiejlajflea" title="fea.fae">
after : <a href="ljilfejalfejla" title="ljilfejalfejla" src="ljfiejlajflea")

465:名無しさん@お腹いっぱい。
07/03/07 19:06:34 /8mO2Jfl0
>>463
あらかじめtitleの無い場合は,titleにhrefを入れます。
titleのある場合は、既にあるtitle+hrefにします。
具体的には
<a href ="\1" title="\3 \1" \7>\0</a>
3は既にあるタイトルで空の場合もとりあえず入れときますw
記述してくださった$NESTの入れ子を試してみたところ7にその他のものが入ってくれました。
$NEST($NEST(<(a|area)\s,(*href=$AV(\1)*|)&(*title=$AV(\3)*|) \7,>),\0,</a>)
ただこれだと\7に既にあるhrefやtitleも入ってしまいますが
<a href ="\1" \7 title="\3 \1" >\0</a>
こうすれば大丈夫みたいです。
ありがとうございました。

466:think ◆MM0nnAOCiQ
07/03/07 19:37:31 O0RWiz+R0
>>456
> そこに何か問題があるとは思えません。
"oncontextmenu deleter" でマッチすると、他のフィルタで <body> にマッチしなくなるという問題がありますが、"oncontextmenu deleter" を優先するなら些細な問題かもしれませんね。
アプローチの仕方が違うだけとも言えるので、好みの問題だと思います。

> 私のver1とthinkさんのver2では、ver2がver1の1.5倍多くの時間が掛かるようです。
検証お疲れ様です。
>454は読み取るバイト数が少ないので、速いと思っていましたが $NEST の方が速くなるんですね。
せっかくなので、速度重視で最適化してみました。(下記の状況で、+{1,*} が効かない理由は解りません)

[Patterns]
Name = "oncontextmenu deleter type3.1 [2007/03/07]"
Active = TRUE
URL = "$TYPE(htm)"
Limit = 256
Match = "$NEST(<(body|img)\#(^(^\s)),"
"\#\son(contextmenu|selectstart|copy)=$AV(*)"
"(\#\son(contextmenu|selectstart|copy)=$AV(*))+"
"\#,>)"
Replace = "<\@>"

ところで、>454で示したフィルタは "type2" であって、「最新のフィルタ」として掲示したわけではないですよ。(^^;
449氏の作成したフィルタを引き継いで改良したなんて、おこがましいことは言えません。
私の経験,ポリシーに則って作成した別のフィルタだと思っています。

467:名無しさん@お腹いっぱい。
07/03/07 20:02:01 JUv0ENxk0
>466
一度マッチした部分にはほかのフィルタはマッチしないというのは不覚にも知りませんでした。
ちょっとしたテストをしてみましたが、確かにそのようです。
フィルタ同士でループしないようにとのことでしょう。
こうだと分かると何でもかんでもマッチングしてしまう>>449のフィルタは曲者ですね。
thinkさんの>466が正当な改良版だと思いますよ。
>456の段階では単にver違いという意味で書いたのですが。

468:think ◆MM0nnAOCiQ
07/03/07 23:41:26 O0RWiz+R0
>>467
> 一度マッチした部分にはほかのフィルタはマッチしない
これは下記URLの「再帰的なマッチングを使う方法」を読むと、よく理解できると思います。

Tips and Tricks
URLリンク(www.pluto.dti.ne.jp)

> >456の段階では単にver違いという意味で書いたのですが。
それは失礼しました。
ただ、ver違いというニュアンスだと後継版と受け取られがちなので、念のため釈明させていただきました。

469:think ◆MM0nnAOCiQ
07/03/07 23:43:05 O0RWiz+R0
>>465
仰ることが正確に掴めていませんが...

> $NEST($NEST(<(a|area)\s,(*href=$AV(\1)*|)&(*title=$AV(\3)*|) \7,>),\0,</a>)
> <a href ="\1" \7 title="\3 \1" >\0</a>
どちらの表現でも、

<a id="test" title="string" href="URL">

のHTMLソースにマッチしないという問題が残っているようです。
>464の表現を使い回しするとこれに対応できますが、「全てのa要素にマッチしてしまう」という問題がまだ残ります。
HTML4.01仕様書によれば、

------------
ユーザエージェントは、CDATA型属性値の、冒頭あるいは末尾の空白文字を無視してよい。
(例えば「 myval 」を「myval」として解釈してよい。)
著者は、冒頭あるいは末尾に空白文字のある属性値を宣言することを避けるべきである。
URLリンク(www.asahi-net.or.jp)
------------

とあり、空白文字のみの属性値によるUAの動作を明示していません。(「してよい」は「しなくてもよい」とも受け取れる表現だからです。)
可能なら、「空の属性値」「空白のみの属性値」は避けるべきだと思います。

470:think ◆MM0nnAOCiQ
07/03/07 23:52:20 O0RWiz+R0
>469の続き。

この条件なら二重に$NESTを使うまでもなく、</a> までマッチさせずとも、<a> の開始タグのみにマッチさせるだけで十分だと思います。
期待する動作を、「href属性のあるa要素があったとき、title属性にhref属性値を挿入する」とすると。

[Patterns]
Name = "Insert <a> title [2007/03/07] test2"
Active = TRUE
URL = "$TYPE(htm)"
Limit = 256
Match = "$NEST((<a(rea|)\s)\#(^(^[^>]++href=$AV(\0))),"
"(\#)title=$AV(\1)$SET(2=\1 \0)\#|"
"$SET(2=\0)\#"
",>)"
Replace = "\@ title="\2">"

(^(^[^>]++href=$AV(\0))) は & に読み替えてもらっても構いません。
(\#) は置換スタックのバグ回避のための暫定措置です。
URLリンク(abc.s65.xrea.com)
| と $SET を組み合わせているのは、title属性値の先頭に空白を含めないためですが、title属性値を格納した変数を $TST で判定して分岐させてもよいかもしれません。

471:457,462,465
07/03/08 00:30:23 yKKFo5Ex0
>>469-470
まだ理解してませんが、参考になります。
titleにあらゆる属性をつっこもうとしてまして
(例えばaタグの後にimgタグが来た場合のhrefも)。
470を検討してみます。ありがとうございます。

472:名無しさん@お腹いっぱい。
07/03/08 00:45:41 4XFeP5Uk0
aタグ内にimgがある場合に対応させようとするなら↓のようにすればいいよ

$NEST($NEST(<a\s,*hogehoge*,>),
\0((<img[^>]++src=$AV(\3)[^>]+>)\1\2|),
</a>)

で置換部分は <a>\0\1\2<\a> とすれば良いし、srcの属性値は\3に入っている。
>(例えばaタグの後にimgタグが来た場合のhrefも)。
但し、これをhrefじゃなくてsrcのことだと解釈しての話。
*hogehoge* を>470に置き換えればそのまま動くはず。

473:名無しさん@お腹いっぱい。
07/03/08 00:54:47 yKKFo5Ex0
>>472
ありがとう。やってみますね。

474:名無しさん@お腹いっぱい。
07/03/08 01:16:31 7b1HZB3B0
ぶった切ってすみませんが、YOUTUBEで再生のデフォルトを、
全画面にするフィルター(リンク追加でもかまいません)がもしできたらお願いします。

475:名無しさん@お腹いっぱい。
07/03/08 07:26:27 2LOjLWQX0
>>474
[Patterns]
Name = "YouTube fullscreen"
Active = TRUE
URL = "$TYPE(htm)(www.|)youtube.com/watch\?"
Limit = 256
Match = "<!DOCTYPE$SET(0=<!--)"
"|"
"-->"
"|"
"new\sSWFObject\(\"/player2.swf\?(video_id=[^"]+)\1\""
"$SET(0=--><meta http-equiv="refresh" content="0;url=URLリンク(www.youtube.com))"
Replace = "\0"

476:名無しさん@お腹いっぱい。
07/03/08 16:21:59 vBpwNiv90
ところで>>445のフィルタまだ?

477:名無しさん@お腹いっぱい。
07/03/08 16:52:03 BEkyhjCe0
JavaScriptをOFFにすればいいんじゃね?

478:名無しさん@お腹いっぱい。
07/03/08 18:34:06 2LOjLWQX0
>>476
超適当だけど一応作ってみた
[Patterns]
Name = "www.jtw.zaq.ne.jp/animesong/ kasi kopipe"
Active = TRUE
URL = "www.jtw.zaq.ne.jp/animesong/"
Limit = 256
Match = "<script type="text/javascript" src="../../y.js"></script>"
"|"
"<NOSCRIPT><META HTTP-EQUIV="Refresh" CONTENT="0;URL=index.html"></NOSCRIPT>"
"|"
"on(selectstart|contextmenu)="return false""

479:名無しさん@お腹いっぱい。
07/03/08 19:18:02 K/9AXNBV0
>476
URLリンク(www.kenichimaehashi.com)

480:名無しさん@お腹いっぱい。
07/03/08 23:09:23 yKKFo5Ex0
>>470,>>472を使ってあれこれいじってましたが
$NESTを使うと<img*>の記述のある場合と無い場合でうまくいかなかったので
単純にして全部作り直してしまいました ;;
リンクをクリックすれば_selfで、右に出るblanktab.gifをクリックすれば_blankで開きます。
(blanktab.gifはなんでもいいです)
>>470,>>472はかなり参考になりました。またよろしくお願いします。
おかしなところ多々あると思いますが、以下source

481:名無しさん@お腹いっぱい。
07/03/08 23:11:26 OXZVhBSr0
\(^^)/ ←ソース

482:名無しさん@お腹いっぱい。
07/03/08 23:11:58 yKKFo5Ex0
Name = "Insert title & blankGIF [2007/03/08]"
Active = TRUE
Bounds = "<(a|area)\s[^>]+>(^(\>|click here|<dd>|ID:))*</a>"
Limit = 2048
Match = "<(a(rea|))\9\s(*(*href=$AV(\1)*|)&(*title=$AV(\2)*|) *)\5[^>]+>"
"\7((<img\s(*src=$AV(\3)*|)&(*alt=$AV(\4)*|) *[^>]+>)\6|)"
"</(a(rea|))>"
Replace = "<\9 target="_self" \5 target="_self" title="[URL]\1\r\[TITLE]\2\r[SRC]\3\r[ALT]\4">\7\6\8</\9>"
"<\9 target="_blank" \5 target="_blank" title="[URL]\1\r\[TITLE]\2\r[SRC]\3\r[ALT]\4">"
"<img border="0" src="URLリンク(Local.ptron) alt="[URL]\1\r\[TITLE]\2\r[SRC]\3\r[ALT]\4"></\9>"

483:名無しさん@お腹いっぱい。
07/03/08 23:13:17 yKKFo5Ex0
>>481
間違えました

484:名無しさん@お腹いっぱい。
07/03/09 01:00:08 bjxVpHmZ0
誤爆ありまくりなので$NESTつけました・・
Name = "Insert title & blankgif set [2007/03/08]"
Active = TRUE
Bounds = "<a(rea|)\s[^>]+>(^(\>|click here|<dd>|ID:))*</a(rea|)>"
Limit = 1024
Match = "$NEST(<(a(rea|))\9\s,(*(*href=$AV(\1)*|)&(*title=$AV(\2)*|) *)\5,>"
"\7((<img\s(*src=$AV(\3)*|)&(*alt=$AV(\4)*|) *[^>]+>)\6|)"
"</(a(rea|))>)"
Replace = "<\9 target="_self" \5 target="_self" title="[URL]\1\r\[TITLE]\2\r[SRC]\3\r[ALT]\4">\7\6</\9>"
"<\9 target="_blank" \5 target="_blank" title="[URL]\1\r\[TITLE]\2\r[SRC]\3\r[ALT]\4">
"<img border="0" src="URLリンク(Local.ptron) alt="[URL]\1\r\[TITLE]\2\r[SRC]\3\r[ALT]\4"></\9>"

485:名無しさん@お腹いっぱい。
07/03/09 02:11:39 3Cl7ivfL0
自分で考えてフィルタを作りたいならもう少しプログラミング(論理学でもいい)の基礎を勉強したほうがいいよ。
もしくはほかの人がこれまでに書いてきたものを読んで理解したほうがいい。
例えば <a(rea|)>...</a(rea|)> としたんじゃ
<a>...</area> にも <area>....</a> にもマッチするし、たぶんそれは意図していないマッチングだろう。
もう一つだけど最初のうちはアスタリスクを乱用しないほうがいい。
初心者にとってのアスタリスクというのはおそらく面倒なことをブラックボックスに詰め込んでどっかにやるためのツールなんだろうけど
それじゃ何も上達しないし理解もすすまないだろう。
>(*href=$AV(\1)*|)&(*title=$AV(\2)*|)
これなんかはアスタリスク乱用の好例だね。
やりたいことはhrefがあればその属性値を\1に代入し、titleがあればその属性値を\2に代入する、ということなんだろうけど
hrefとtitle以外の属性値をすべて無視してしまえば、もっとシンプルな場合わけができるはずだ。
<a>, <a href>, <a href title>, <a title>, <a title href> というように。
あとはこのスペースを[^>]++で置き換えてやればhrefとtitle以外の属性値を上手に無視することができる。
例えばこうなる。
<a\s ([^>]++href=$AV(*)([^>]++title=$AV(*)|)[^>]+>|[^>]++title=$AV(*)([^>]++href=$AV(*)|)[^>]+>|[^>]+>)
#これは<a>にはマッチしないけど、現実的にはそれでも問題はないだろう。

>(*href=$AV(\1)*|)&(*title=$AV(\2)*|)
は初心者の好むブラックボックス化で
><a\s ([^>]++href=$AV(*)([^>]++title=$AV(*)|)[^>]+>|[^>]++title=$AV(*)([^>]++href=$AV(*)|)[^>]+>|[^>]+>)
は論理的思考にある程度慣れた人が好むブラックボックス化だと考えてくれてもいいと思う。(優劣の問題にあらず)
論理学的には中身はまったく一緒だけどよりシンプルでより破綻しづらいのは後者。 { (A|B)&(C|D) = (AC|AD|BC|BD) }

Proxomitronでのアスタリスクは賢い上に速度も最速な便利な道具だけど慣れるまでは上記のようなスタンスで取り組んだほうがいい。
高速化チューニングはその後からやってもいいんだから。

486:名無しさん@お腹いっぱい。
07/03/09 02:47:07 3Cl7ivfL0
属性値と要素を混同している部分があるけど、適宜読み替えてほしい。
<a(rea|)>...</a(rea|)> について。
残念ながらProxomitronの仕様ではこれに多少の修正を加えることで「意図」通りに動かすということはできない。
方法は二つ。
一つは括弧を閉じないやり方。
Proxomitronからすれば一番合理的なやり方だけど、人間からすれば読みづらいしフィルタサイズが大きくなるわ追加・修正が面倒だわ。
<a(rea...>...</area> | ...>....</a>)
もう一つはTSTを利用するやり方。
<a(rea...>(\1)<\area> | ...>(\1)<\a>)$TST(\1=foobar)
これなら人間にとって把握しやすいし修正が楽になるというメリットがある。
後者は同じようなことをANDやBoundsを使って表現することもできる。
ANDとBoundsとTSTでどれが一番早いかは……不明。

487:名無しさん@お腹いっぱい。
07/03/09 03:15:52 3Cl7ivfL0
簡単なテストでANDとDOUBLEANDとTSTの速度比較をしてみた。

AND : <a\s([^>]+>&href=$AV(*))
TST : <a\s([^>]+)\0>$TST(\0=*href=$AV(*)*)
DAND : <a\s([^>]+>&&*href=$AV(*)*)

フィルタとしては考え得る限りで同一の動作をすると思う。
結果から言うと所要時間は AND ≒ DAND < TST でした。
TSTが一番遅いだろうとは思ってたけどANDとDANDがほぼ同じというのは少し意外。
#もちろんサンプルによっては結果は異なると思うので、本来なら色々なサンプルでテストしてみるべきところだが
#今回は二つのサンプルでほぼ同一の結果(所要時間の比率)を得たのでよしとした。
AND/DANDとTSTの速度差は数回の平均を取った場合で0.7%。
ANDとDANDの差は誤差範囲内。

ちなみに <a\s[^>]++href=$AV(*)[^>]+> は上記三つの約7倍の速さだった。
[^>]++をアスタリスクに置換すると更に6%早くなった。(但しこのアスタリスクの使い方は非推奨)
長い文字列に対しては$NESTを使うことで更に早くなる場合もあるがそれはケースバイケース。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4310日前に更新/385 KB
担当:undef