#31001
Applek
参加者

お世話になっております。
私が正規表現などの使い方、書き方を知らないだけかも知れませんが、正規表現でビックデータの編集で毎回非常に困るのは、特定の範囲のみに何かしたいときに非常に苦労することです。
先の事例のように☆~★の範囲だけの範囲で何か変更したいときに難しいです。
その範囲以外の部分に適応されると困るため単純に
batch_list.AddReplace(“◎$”,”▼”,eeFindReplaceRegExp | eeFindReplaceCase,0);
こんなふうに書くわけにはいかないです。文書のすべての部分にマッチします。

以下のように書くとビックデータとなると絶望的な遅さで置換不可能です。
batch_list.AddReplace(“\\n”,”⏎”,eeFindReplaceRegExp,0);// シングルラインモード
for( i = 0; i < 20000; ++i )
batch_list.AddReplace(“(☆[^⏎]*?)◎⏎(.*?★)”,”\\1▼⏎\\2″,eeFindReplaceRegExp | eeFindReplaceCase,0);// ◎を▼に変更
batch_list.AddReplace(“⏎”,”\\n”,eeFindReplaceRegExp,0);// シングルラインモード解除

もし以下のように範囲指定だけで書ければ、数行で済み、記述も数行で文章丸ごと適応させるときと同じ記載で済みます。
範囲指定のコード ☆~★の記述 最短か最長を指定
batch_list.AddReplace(“◎$”,”▼”,eeFindReplaceRegExp | eeFindReplaceCase,0);// 通常の文書まるごと適応のときと同じ正規表現コード
範囲指定終わりのコード

このような一瞬で特定範囲だけ限定して普通の正規表現で動作させる書き方の方法はありますでしょうか?
よろしくお願いいたします。