|
\fを使った区切りが遅いということもありますが、もう1つ、コンマ区切りの1つ
のセルを指定する正規表現パターンがちょっとややこしいので遅いっていうのがあり
ます。
セルを指定する正規表現パターンは、
[^,]*?,
にした方がいいです。
そうすると、検索パターン的には、
^[^,]*?,[^,]*?,[^,]*?,.....[^,]*?$
みたいな感じになります。
これと、\fを使わない高速な方のタグ付き正規表現を使うとして、
1〜4のセル ... \1
5〜6のセル ... \2
25のセル ... \3
27,28のセル(ただし最後のコンマは省く) ... \4
になるようにカッコで囲んでやればいいです。
最終的には、
replaceallfast "(^[^,]*?,[^,]*?,)[^,]*?,([^,]*?,[^,]*?,[^,]*?,)[^,]*?,[^,]*?,
[^,]*?,[^,]*?,[^,]*?,[^,]*?,[^,]*?,[^,]*?,[^,]*?,[^,]*?,[^,]*?,[^,]*?,[^,]*?,
[^,]*?,[^,]*?,[^,]*?,[^,]*?,[^,]*?,([^,]*?,)[^,]*?,([^,]*?,[^,]*?),[^,]*?$",
"\\1\\2\\3\\4", regular;
のようなマクロになると思います。(こちらでテストした限りはそれで置換に成功
しました)
今回は不要ですが、場合によってはタグにヒットさせない用のカッコである、
(?: )
を使って捨てる部分を囲んでやれば、\0〜\9で足りるように出来ると思います。
|
|