Proxomitron フィルター作成スレッド Part5at SOFTWARE
Proxomitron フィルター作成スレッド Part5 - 暇つぶし2ch905:名無しさん@お腹いっぱい。
06/10/27 15:33:23 cpcnkQie0
昨日、寝る前にベッドの中で思いついたアイデアを今思い出したので、書き残しておきます。
hrefの中で../を発見することが相対リンク→絶対リンクの発動条件ですが、これを肯定先読みを使うことで
よりスマートに、より複雑に、より分かりづらいフィルタに(w)することができます。

href=$AV((^(^../))
この段階でフィルタの発動条件を満たします。
この直後に現在いる階層の深さを測ります。(>902をそのまま利用)
($TST(SWITCH=1)$SET(\0=URL)|
$URL([^:]+://[^/]+/$LST(increment)([^./]+/$LST(increment))+)$SET(URL=\0)$SET(SWITCH=1))

そしてhref内の../を数え上げて、decrementによって引き算します。
(../$LST(decrement))+(*)\3

最後に>900をそのまま利用します。
以上より
Match = "$NEST(<a\s,\1href=$AV((^(^../))($TST(SWITCH=1)$SET(\0=URL)|"
"$URL([^:]+://[^/]+/$LST(increment)([^./]+/$LST(increment))+)$SET(URL=\0)$SET(SWITCH=1))(../$LST(decrement))+(*)\3)(*)\4,>)"
"$URL(([^:]+://[^/]+/$LST(decrement)$TST(\0=[^0])([^./]+/$LST(decrement)$TST(\0=[^0]))+)\5)"
Replace = "<a \1href="\5\3"\4>"

href=$AV()の中に詰め込んだだけで、それ以外は何も変わりません。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch