マクロ実行時の置換処理のバグ?No.17131
kamuy さん 04/04/21 03:06
 
ちょっとだけ検索しましたが、類例を見つけられませんでしたので
新規に投稿します。
もし、過去に同様の問い合わせがあるようでしたら、
そちらへの誘導を願います。

質問です。

現在、ネット上で収集した情報をまとめなおすために
自作のマクロを使用しているのですが、
このマクロ中での一括変換に妙な挙動が見られます。
具体的には、
1,050円(本体1,000円)
等という併記式価格表示を
1,050円
という、税込みのみの価格表示に簡略化する処理の部分にて、
replaceallfast "\(本体[0-9|,]+円\)", "", regular ;
という記述でうまくいくと思うのですが、実際にマクロを走らせると
1,050円()
てな感じで括弧が残ったままになるのです。
同様の処理をマクロではなく
通常のダイアログボックスによる全置換をする場合はうまくいくのです。
(「\(本体[0-9|,]+円\)」を検索キーに「」を置換文字列にする)

コレ、私が何か勘違いしているのでしょうか?
それとも、当方環境依存の問題なのでしょうか?

[ ]
RE:17131 マクロ実行時の置換処理のバグ?No.17132
アルビレオ さん 04/04/21 03:24
 
秀丸ユーザーのアルビレオです。

>replaceallfast "\(本体[0-9|,]+円\)", "", regular ;

マクロの文字列内で「\」を書くには、「\\」と書く必要があります。

replaceallfast "\\(本体[0-9|,]+円\\)", "", regular;

原因がわかってしまえば過去に何度も出てきていることがわかると思いますが、
気づかないとかなり悩みますよね。(^^)

[ ]
RE:17132 マクロ実行時の置換処理のバグ?No.17133
kamuy さん 04/04/21 03:32
 
早速の回答、有り難う御座いました。
マクロも修正して無事削れるようになったのを確認できました。

そうか、なんのエラーも出ないのでハマってましたが、
マクロ内での正規表現には気を付けなくてはならないですね。
良い勉強になりました。

[ ]