正規表現を使った置換でアプリケーションNo.12936
T.T. さん 02/09/10 14:48
 
正規表現で置換を掛けているときに,一致した内容が非常に長い場合に,
アプリケーションエラーが発生します。

*再現方法

・「 」(スペース)を20000個,改行なしで書く。
・正規表現を有効にして,「 +$」を「OK」に置換する。

*症状

以下の三通りのどれかが起こります。発生条件は不明です。

・「もっと簡単にしてください」のダイアログボックスが出る。
・「もっと簡単にしてください」のダイアログボックスが出て,
 OKを押すとアプリケーションエラーが発生する。
・いきなりアプリケーションエラーが発生する。

まあ,やっていること自体が無茶なんですが。SQLの出力結果の
行末のスペースを除去しようとして発見しました。TABLEによっては,
各行の末尾に数万個のスペースがつく場合もあり,直して
いただけると助かります。

-----
P.S.
秀丸エディタには,Windows 3.1のころからお世話になっています。
秀丸なしではコンピューター生活が立ち行かないほど「どっぷり」と
使わせてもらっています。

[ ]
RE:12936 正規表現を使った置換でアプリケNo.12937
T.T. さん 02/09/10 14:54
 
環境が書いていませんね。

秀丸エディタversion 3.17をWindows 2000上で使用しています。

[ ]
RE:12936 正規表現を使った置換でアプリケNo.12940
秀丸担当 さん 02/09/10 16:54
 
>正規表現で置換を掛けているときに,一致した内容が非常に長い場合に,
>アプリケーションエラーが発生します。

再現することができました。
この問題はかねてからあるのですが、修正が困難な状況です。
jre32.dllをbregexp.dll+bregifに差し替えることで回避できます。

[ ]
RE:12937 正規表現を使った置換でアプリケNo.12962
encodingshiftjis さん 02/09/12 23:47
 
OKへの置換はともかく、行末の空白の除去の別の方法として
その他>ファイルタイプ別の設定>保存・読込み>
保存するときに行末の空白を除去する
保存しないで更新

で保存しても?でした。これも正規表現と関連してますか?
2万個の空白行(複数)

[ ]
RE:12962 正規表現を使った置換でアプリケNo.12964
秀丸担当 さん 02/09/13 17:29
 
>OKへの置換はともかく、行末の空白の除去の別の方法として
>その他>ファイルタイプ別の設定>保存・読込み>
>保存するときに行末の空白を除去する
>保存しないで更新
>
>で保存しても?でした。これも正規表現と関連してますか?
>2万個の空白行(複数)

おかしいことを確認できました。
正規表現とは関連していません。別のバグです。
修正するようにしておきます。

[ ]
RE:12964 正規表現を使った置換でアプリケNo.12987
encodingshiftjis さん 02/09/18 22:33
 
SQLのDBでのデータを想定するなら
前処理で、240個の空白連続を、削除(全置換で)
した後、ふつうに行末空白を削除できるようになります。
(行末空白削除保存とか)

データの途中に長い空白が出現しないと想定できるなら。

[ ]