HMJRE.DLL での長い正規表現No.15905
Makkie さん 03/11/27 18:07
 
Makkie と申します。

HMJRE.DLLで可能な正規表現の「長さ」には、何らかの制限が
ありますでしょうか? ないしは、括弧の総数、括弧のネストの
深さ、ORの数、など、正規表現の複雑度合いに関する制限です。

長い正規表現を試したところ「括弧の対応があってません」という
メッセージがでます(マクロのsearchdown2)。実績のある正規表現
をORでつなげただけなので、括弧の対応はあっているはずなのです
が・・・・

4.02、Windows2000です。

よろしくお願いします。

[ ]
RE:15905 HMJRE.DLL での長い正規表現No.15907
秀まるお2 さん 03/11/27 18:21
 
 HmJre.dll側としては特に制限はありませんが、秀丸側の検索文字列の長さに
制限があります。制限を超えた分はカットされます。

 検索ダイアログボックス中の検索文字列を、クリップボード経由で一度秀丸側
に貼り付けてみて欲しいです。最後の方がカットされてるんじゃないかと思いま
す。

[ ]
RE:15907 HMJRE.DLL での長い正規表現No.15911
Makkie さん 03/11/28 14:08
 
>
> 検索ダイアログボックス中の検索文字列を、クリップボード経由で一度秀丸側
>に貼り付けてみて欲しいです。最後の方がカットされてるんじゃないかと思いま
>す。

おっしゃるとおり、検索ダイアログボックスでは、クリップボード経由
で貼り付けた正規表現(半角換算380文字程度)が、304文字のと
ころあたりで途切れてしまいました。これではエラーになるはずです。

しかし、私はマクロで

$RegularExpression = "380文字程度の正規表現";
searchdown2 $RegularExpression, regular;

とやっただけであって、この場合でもなぜ「途切れ」ざるを得ないのか
不可解です。マクロでは無制限にできませんか。

[ ]
RE:15911 HMJRE.DLL での長い正規表現No.15912
秀まるお2 さん 03/11/28 15:14
 
> とやっただけであって、この場合でもなぜ「途切れ」ざるを得ないのか
> 不可解です。マクロでは無制限にできませんか。

 マクロで実行した場合に限って無制限という訳には出来ないです。内部的な作
り上、検索ダイアログボックスでの制限と同じ長さで制限されます。

 検索文字列の長さ制限については、要望との兼ね合いを考えて、今後拡張する
かもしれません。一応、レジストリ上は、長さを拡張できる作りにはしてありま
すので。

[ ]
RE:15912 HMJRE.DLL での長い正規表現No.15918
Makkie さん 03/11/28 17:48
 

> 検索文字列の長さ制限については、要望との兼ね合いを考えて、今後拡張する
>かもしれません。

では、それまで待っております。よろしくご検討をお願いします。

[ ]
RE:15912 検索文字列の長さ制限緩和No.15952
IKKI さん 03/12/03 01:23
 
こんにちは。 IKKI です。

> 検索文字列の長さ制限については、要望との兼ね合いを考えて、今後拡張する
>かもしれません。一応、レジストリ上は、長さを拡張できる作りにはしてありま
>すので。

亀レスながら拡張要望に1票投じます。
長大な文字列をタグ付き正規表現で一気に置換するとき、しばしばこの制限が足かせ
になるからです。
例を挙げると

 検索:
  \t<LI class="mac">\f<A href=".*?">.*?</A>\f \f.*?\f <SPAN class="date"
>\f.*?\f</SPAN>\n\t\f<P>.*</P>\f\n

 置換:
  \t<TR class="mac"><TH>\3</TH><TD>\1</TD><TD>\5</TD></TR>\n<TR><TD rowspa
n="3">\7</TD></TR>

このような感じで、検索・置換文字列に10行程度の段落(1キロバイト程度?)を与
えることができるのが望ましいです。
現状の制限(300バイト程度)は中途半端の感が否めません。タグ付き正規表現の導
入、 HMJRE の開発、マシンパワーの向上など、秀丸の検索・置換機能を設計した当
時とは情況が変わってきたのではないでしょうか。
よろしくご検討ください。

[ ]
RE:15952 検索文字列の長さ制限緩和No.15967
秀まるお2 さん 03/12/03 22:08
 
 んじゃ、僕の方で直そうかなぁと…。

 あまり期待しないでお待ちください。

[ ]
RE:15967 検索文字列の長さ制限緩和No.15973
IKKI さん 03/12/04 12:49
 
IKKI です。ご検討いただきありがとうございます。

>  あまり期待しないでお待ちください。

首を長くして待っております。よろしくお願いいたします。

[ ]