■■■■Proxomitron入門スレッド■■■■5at PCQA
■■■■Proxomitron入門スレッド■■■■5 - 暇つぶし2ch550:ひよこ名無しさん
06/05/10 11:47:20
[Patterns]
Name = "$NEST(<a\s[^>]+>,</a>)"
Active = FALSE
Limit = 256
Match = "$NEST((<a\s[^>]+>)\0,</a>)"
Replace = "\r\n\\0 = \0\r\n"

『<a href=1><test><a href=2><test><a href=3></a>』でテスト。

\0に<a href=1><a href=2><a href=3>が入るかと思いきや...。
たぶん<a href=1><a href=2><a href=3>が<a\s[^>]+>にマッチするかどうかのチェックを一番最後にしてる。
<a\s*>だとこのチェックもすり抜けてしまうんだろう。

それにしても<a\s*>の挙動は面白いね。 これを利用すれば今まで出来なかったマッチングが
出来るようになる可能性があると思う。

* マルチONのフィルタAで閉じタグの数を減らしたり増やしたりする
* フィルタBの$NEST()の中の<a\s*>が誤爆する範囲が変わる

これのキモは閉じタグをn個入れると<a\s*>の位置がマッチn個分戻るということ。
10個<a\s*>があって閉じタグを3個入れると7個目の<a\s*>までマッチ。 この場合は(<a\s*>*)+{7}と書けば
済むことだが、最初に『10個』という数が分からない場面では{7}という指定は出来ない。


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