質問: プログラムなどで入れ子になると、入れ子になったソースに半角スペース或いは、tabで四文字分の空白を開けます。 何かしらの都合で、さらに入れ子にすると、先ほどの四文字の空白を持ったソースにもう四文字の空白を与えて合計八文字分の空白を指定することになります。 短い文なら手動でできますが、長文だとかなり面倒な作業です。記憶がおぼろげですが、正規表現を利用して簡単に字下げを行うやり方を解説しているサイトがあったと思うのですが、 昔のことで忘れてしまいました。憶えていないものの試行錯誤し`\s{4}` (四文字分の空白)などで検索し置換を行おうと思ったのですが、**字下げを行っている空白部分にだけマッチしないのです。** 字下げしているところとは、別の空白部分四つ分にマッチします。利用しているのは、**dreamweaverCS6**です。 なぜ、字下げしている部分だけマッチしないのでしょうか。またマッチさせるには、どのような正規表現が必要なのでしょうか。
回答: やりたいことは、既に字下げされている部分を選択して、選択範囲の置換でもう一段深くしたい といったことでしょうか?(100行も先頭にスペース入れていくのを手作業は無理というような) 実際のテキストが無いので細かいところが読み取れずすいません。 既に字下げされている部分には聞かないという事ですが、たぶんそこはタブ文字で字下げされているからじゃないかと思います。`\s`はタブにもマッチしますが`\s{4}`にマッチするにはタブが4つ(かスペース3、タブ1でも可)必要になるので、マッチしていないのかもしれません。 タブ文字は `\t`でマッチします。 DW6は使ってないですが、 通常の正規表現置換では `^( {4}|\t)` を に置換してみたらどうなるでしょう。(`{`の前にはスペースがあります、`^`は先頭を表すメタ文字です。先頭から半角スペース4つまたはタブにマッチします。それをスペース8個に置き換えています。 あと、最近のエディタだと、 複数行選択した状態で、TABキーを押すとインデントしてくれるものが多いので(Shift+TABで逆インデント)、それも試してみてください。(その機能が無い場合は選択範囲がタブ文字になってしまいますのでCtrl+ZなどUNDO機能で戻してください)