06/10/25 19:24:36 5FqRZ3c50
ところで、話題のグローバル変数ですが、フラグを立てる(ある条件に合致したら、フラグを立て、以降フラグが立っている場合はマッチさせない)目的で使うと、高速化できることがあります。
>880のフィルタはその典型ですね。
"Charset: Set global variable", "Replace character: 2byte -> 1byte" でも使った手法で、実際これらが実用的なレベルの速度で動作するのはグローバル変数の効果が大きいと思います。
正直なところ、当初は「『全角文字 → 半角文字』の変換は1文字ずつ置換するわけだから、遅くて使いものにならないだろう」と悲観的だったのですが、これほど実用的になるとは思ってもいませんでした。
フィルタを作成依頼した人に感謝感謝です。
>>853,867,872
フィルタ作成お疲れ様です。ちょっと見てみましたが、まだ改善の余地があると思います。
---- lightbox_plus part1
</head> → (^(^</head>))
実質的な動作は変わらないのですが、$STOP() を使うなら消費しなくても良いかなと。
---- lightbox_plus part2
> Bounds = "$NEST(<a\s*>,</a>)"
$NEST と * を組み合わせると不具合が生じることがあるので、Bounds = "$NEST(<a\s[^>]+>,</a>)" にした方がよいかと思います。
> Match = "([^>]++href=)\0$AV((([^/]+//)\1|)(\2).(jpg|gif|bmp|png)\3(.html+|)\4(target="_blank"|)\5)\6"
・(target="_blank"|)\5 の場所が明らかにおかしい (属性値に入ってます)
・(\2) は括弧が要りません (正規表現とは違いますので…)
・グループ化の場所を変えれば、変数の数をもう少し減らせるかも
> Replace = "\0"\1\2.\3\4" rel="lightbox" \5\6\0"\1\2.\3\4" target="_blank">□</a>"
□などの全角文字はそのままの状態で記入すると、Shift_JISのWebページでしか作用せず、Shift_JIS以外のWebページでは文字化けを引き起こしてしまいます。
なので、ここは半角文字にするか、実体参照を用いて記述してください。
URLリンク(abc.s65.xrea.com)