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で
「正規表現」
「エスケープシーケンスを理解しろ」
にチェックを入れて置換します。
さらに、元の文章は同じものだけど、タブの数など違う場合には「正規表現」を使うとうまくできます。
たとえば、
<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で
「正規表現」
「エスケープシーケンスを理解しろ」
にチェックを入れて置換します。
Posted by スポンジボブ at 15:21│Comments(0)│xyzzy
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
コメントフォーム