- 1 名前:ミスターオミトロン [2006/11/13(月) 17:00:32 ID:oCAoIukD0]
- このスレは作成依頼されたフィルタを有志により作るスレッドPart4です
アップローダー wind.prohosting.com/proxmine/cgi-bin/uploader/ proxo.hp.infoseek.co.jp/cgi-bin/sn_uploader/upload.html Proxomitron等に関するWiki abc.s65.xrea.com/prox/wiki/ Thinking Archive(仮) vird2002.s8.xrea.com/ CastleCops Proxomitron Filters www.castlecops.com/f65-Proxomitron_Filters.html >>2-10にいろいろと
- 469 名前:think ◆MM0nnAOCiQ mailto:sage [2007/03/07(水) 23:43:05 ID: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」として解釈してよい。) 著者は、冒頭あるいは末尾に空白文字のある属性値を宣言することを避けるべきである。 www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/types.html#type-cdata ------------ とあり、空白文字のみの属性値によるUAの動作を明示していません。(「してよい」は「しなくてもよい」とも受け取れる表現だからです。) 可能なら、「空の属性値」「空白のみの属性値」は避けるべきだと思います。
- 470 名前:think ◆MM0nnAOCiQ mailto:sage [2007/03/07(水) 23:52:20 ID: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))) は & に読み替えてもらっても構いません。 (\#) は置換スタックのバグ回避のための暫定措置です。 ttp://abc.s65.xrea.com/prox/wiki/MatchingRules/#stack-bug | と $SET を組み合わせているのは、title属性値の先頭に空白を含めないためですが、title属性値を格納した変数を $TST で判定して分岐させてもよいかもしれません。
|

|