しげお さん、ハンドル変更ありがとうございました。
いま気がついたのですが、もしかして「\n」というのは、QXで検索・置換に使 う特殊文字の(改行の意味の)「\n」ではなくて、そのものの文字列の「\n」こ とだったのでしょうか。だとすると、特殊文字をエスケープするために「\\n」 と表記しなければいけないのですが。
>SiさんのREPMULTI.MAC(複数文字列一括置換マクロ)でも同じ結果になったので、 >QXの問題かなと思ったのですが・・・。
Si さんのマクロも引っぱり出してきました。これはテーブルファイルを作って おくんですね。途中に「\n」(改行)を含む文字列を複数指定しても、うちの環 境では問題ないようです。すみませんが、具体的にどのような文字列を、マクロ 実行直前に置換ダイアログの設定がどうなっているかを添えて、教えていただけ ませんか。
また、QX で複数文字列を置換するマクロのもっとも基本的なかたちはこんな感 じです。
proc main @@ReplaceStringMulti "文字列1", "置換文字列1" @@ReplaceStringMulti "文字列2", "置換文字列2" @ReplaceStringMultiExec 1 end proc
ここの文字列のところにテストする文字列を入れて実行すると、もっとも基本的 な状態でのテストができます。
>「^」と「$」については MIFES・MMXでは正規表現ON時のみ対応でした。
なるほど、そういう意味でしたか。たしかに。特殊文字であることに気がつかな いと予想した動作をしなくて驚くことがあるかもしれません。
QX は古いバージョンでは正規表現に対応していませんでした。だんだん便利な 機能がついていくなかで、正規表現より先に「特殊文字」関係が採用されたので、 正規表現オンにしなくても使う設計になっているのだと思います。じつはわたし が初めて QX に触れたころには、改行(\n)の置換もなかったんですが、あれよ あれよという間にタグつき正規表現まで対応されてしまいまして。 |