アプリ版:「スタンプのみでお礼する」機能のリリースについて

置換方法についてお詳しい方よろしくお願いいたします。

現在行いたいことは、ある対象とする記述以前、または以降の内容を削除したいと考えております。

具体的には、仮に<div id="hogehoge">とあったとします。

この場合、これ以前の記述を全て削除の置換を行いたいと思っています。
どんな記述があっても、<div id="hogehoge">の記述以前は全削除という置換です。

また、これは以前なのですが、この記述が終わったマーク、こちらも例えばですが<!--//hogehohe-->という記述終了を指定するコメントがあったとします。

その場合、<!--//hogehohe-->以降の記述は全て削除という指定を行いたいと思います。

伝わりますでしょうか。。。

何かを対象にする置換は調べたところ見つかったのですが、対象をもとに以前、以後という指定での置換が分かりません。><

お詳しい方いらっしゃいましたらアドバイスを頂けないでしょうか。

宜しくお願いいたします。

A 回答 (4件)

notepad++ で確認


http://notepad-plus-plus.org/

CTRL+H または メニュー/検索/置換 から「置換」のダイアログを開き

検索文字列: ^.+(<div id="hogehoge">)
置換文字列: $1
検索モード: 正規表現
. matches newline: チェックを入れる (ファイル先頭まで削除する場合)
. matches newline: チェックしない (同じ行の頭まで削除する場合)
置換ボタンを押す
にて「以前の記述を全て削除」ができます

検索文字列: (<!--//hogehoge-->).+$
なら「以降の記述は全て削除」です
    • good
    • 1

普通にエスケープシーケンスと正規表現を併用できるエディタだと



たとえば

「\(.*\n\)*\(<div id="hogehoge">\)」を「\2」に変更するような処理になります。
    • good
    • 0

> 何かを対象にする置換は調べたところ見つかったのですが、対象をもとに以前、以後という指定での置換が分かりません。

><

考え方としては
 先頭~区切りのパターン~最後
に一致させ、それを
 区切りのパターン~最後
に置換すれば「先頭の削除」
 先頭~区切りのパターン~最後
に置換すれば「以降の削除」になります。

他にも、(対応している場合は)先読み/後読みを使うなど。


正規表現はシステム毎に違います。
なので、具体的なシステムが分からなければ、具体的な方法は示せません。



perlでは
s/正規表現/置換パターン/
で、正規表現に一致する部分を 置換パターンに置き換えることができます。

s/// と書きましたが、実際は、sの直後が区切り文字となります。
/がよく使われるのですが、正規表現やパターンに / が多く使われるときは、違う文字を選択することもあります



あと、「以前」「以後」というのは、
「ファイルの先頭から指定箇所まで」「指定箇所からファイルの最後まで」
なのでしょうか?
「行の先頭から指定箇所まで」「指定箇所から行の最後まで」
なのでしょうか?
システムによっては、後者にしか対応していないこともあります。
オプションで切り替えるものもあります。
    • good
    • 0

perl 風に書くなら



s|^.+(<div id="hogehoge">)|$1|; # 以前を削除
s|(<!--//hogeohe-->).+$|$1|; # 以降を削除
    • good
    • 0
この回答へのお礼

有難うございます。
すみませんご説明不足でした。

出来れば、普通のエディタからの置換方法をお願いできればと思います。

エディタは特に指定はありません、対象のエディタを用意いたしますのでよろしくお願いいたします。

お礼日時:2014/09/16 22:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!