アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 1人
プロフィール
スポンジボブ

2011年01月26日

xyzzyで正規表現

ある複数ファイルの文字列を置換したいとき、一行なら通常の置換コマンドでできるときが多いのですが、複数行にわたる文を複数行の文字列で置換したい場合、xyzzyで「エスケープシーケンスを理解」を使うとうまくできます。
さらに、元の文章は同じものだけど、タブの数など違う場合には「正規表現」を使うとうまくできます。

たとえば、

   <p class="test">
   今日は、
   お天気が
   いいです。
   </p>

という文章を

   <p class="test">
   明日は、
   お天気が
   悪いです。
   </p>

と変更したいとします。

ファイルに含まれる他の文字列にもよりますが、

まず、改行やタブをエスケープシーケンスで置き換えます。

<p class="test">\n\t今日は、\n\tお天気が\n\tいいです。\n\t</p>

xyzzyのメニュー→検索→Gresregで

検索:<p class="test">\n\t今日は、\n\tお天気が\n\tいいです。\n\t</p>
置換:<p class="test">\n\t明日は、\n\tお天気が\n\t悪いです。\n\t</p>
ファイル名:*
「エスケープシーケンスを理解しろ」にチェック

とします。

うまくいきましたか?

ここで、ファイル名をあらかじめいくつか指定したいときは、

test1.txt; test2.txt; *.html

のようにセミコロンで区切って記述します。また、拡張子だけ指定したいときは、ファイル名にアスタリスクを指定して、拡張子を記述します。

次に、複数ファイルで、内容は同じだけどタブの数など違う場合、正規表現を使います。

   <p class="test">\n.*\n.*お天気が\n.*\n.*</p>

とすると、タブの数には関係なく

   <p class="test">
   今日は、
   お天気が
   いいです。
   </p>

の文章を検索してくれるので、Gresregで

「正規表現」
「エスケープシーケンスを理解しろ」

にチェックを入れて置換します。


同じカテゴリー(xyzzy)の記事
 キーボードマクロの繰り返し (2011-11-11 11:17)
 全角→半角変換(xyzzy) (2011-08-26 14:52)
 文字数をカウントする (2011-08-12 10:49)
 リージョンにインデント適用 (2011-07-13 20:51)
 MTでxyzzy (2011-02-12 16:28)
 xyzzyのキーボードマクロをファンクションにする (2010-11-27 23:06)
Posted by スポンジボブ at 15:21│Comments(0)xyzzy
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
コメントフォーム
上の画像に書かれている文字を入力して下さい
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。