◀一般トップへ
  • 7072 場合分け置換
    • 7074 Re:場合分け置換
      • 7081 Re2:場合分け置換
  • [7072] 場合分け置換 じゅん 2009年10月24日 21:16

    サクラエディタの置換についての質問です。
    よろしくお願いします。
    環境はサクラエディタW ver1.6.5.0

    【やりたいこと】
    以下のような置換がしたいです。
    (置換前)
       .2
    (置換後)
       .3
    のように.1だったら.2、.2だったら.3に置換がしたいです。

    【やってみたこと】
    (置換前)
    行頭でタブか全角・半角空白が0回以上で、.数字
    (置換後)
    行頭でタブか全角・半角空白が0回以上で、.数字に1足されたもの

    以上のことを実現するために、以下のような置換をしました。

    (置換前)
    ^([ | |\t]*\.)([1-9])
    (置換後)
    \1\2+1

    置換後は.2+1のようにただ数字に+1がついているだけとなってしまいました。
    希望の置換をするにはどうしたらよいでしょうか?
    • [7074] Re:場合分け置換 743 2009年10月25日 11:33

      553 :549 [↓] :2009/09/13(日) 12:03:38 ID:2wEbzZZn0
      ありがとうございます
      例えばA数字に5を足す置換をするにはどうすればいいでしょうか
      A123B456A789D012(置換前の文章)
      A128B456A794D012(置換後の文章)
      こういう置換は可能でしょうか?

      562 :名無しさん@お腹いっぱい。 [↓] :2009/09/13(日) 14:05:47 ID:9LBNC4VR0
      >>553
      ViVi なら下記の式置換で可能なんだけどねぇ

      :%s/A(\d+)/"A" + (int($1) + 1)/e
      • [7081] Re2:場合分け置換 じゅん 2009年10月29日 20:33

        743さん回答ありがとうございます。
        ViViならできるんですね。
        サクラエディタでは普通の置換では出来ないみたいなので、キーマクロを試してみました。
        キーマクロ自体が初めてなので、「キーマクロの記録作成」で作って、
        ちょっといじって以下のようになり、望み通りの動作をさせる事ができました

        ↓~・~・~・~・~・~・~・~・~・~・~↓
        ↓~・~・~・~・~・~・~・~・~・~・~↓
        //キーボードマクロのファイル
        S_ReplaceAll('^([ | |\\t]*)\.3', '\1\.4', 188);
        S_ReplaceAll('^([ | |\\t]*)\.2', '\1\.3', 188);
        S_ReplaceAll('^([ | |\\t]*)\.1', '\1\.2', 188);
        ↑~・~・~・~・~・~・~・~・~・~・~↑
        ↑~・~・~・~・~・~・~・~・~・~・~↑