06/05/11 02:44:29
>>559
そのアイデアを元にフィルタを作成してみました。
[Patterns]
Name = "$NEST emulator [not inner match] test1"
Active = TRUE
Limit = 256
Match = "(<a\s[^>]+>$SET(N=1)([^<]+(<(^a\s[^>]+>)[^>]+>[^<]+)+<a\s[^>]+>$SET(N=$GET(N)1))+)\0(*</a>$TST(N=1\0)$SET(N=\0))+"
Replace = "\r\n\Nest matched!\r\n"
・$NEST((<a\s*>)\0,</a>) と同じ動作
・<a\s[^>]+> と </a> が同数以上あれば、$NEST(<a\s[^>]+>,</a>) と同じ動作
を再現します。
今回は inner match は考慮しませんでしたが、そこまで考慮すると処理が大変そうです。
というより、start match がマッチした回数をカウントする方法を思いつきません。
# 個人的に、数字の処理に関しては発展の余地があると思いますが、この辺はProximodoに期待かな。
# (繰り返し回数をカウントするマッチングコマンド, 数値の和or差を求めるマッチングコマンド があると嬉しい)