• ベストアンサー

マックOS Xのテキストエディタ、JeditXでのパターン検索

大量にあるテキストの中から、一気に検索・置換をする必要があって、grep、正規表現というものを知りましたが、うまくいきません。 HTMLファイルで、例えば <BR>○○○○<BR> というのを、一気に <BR><u>○○○○</u><BR> にしたいのです。 ○にはいろんなテキストがありますが、タグは共通です。 検索欄に<BR>.*.*<BR>と入れたら良いところまではこぎつけましたが、 置換欄に何と記述すれば元のテキストを変更することなく、<u></u>タグで挟むことができますか? Perl だと<BR>(.*)<BR>を検索欄に、 <BR><u>$1</u><BR>を置換欄に入れるといいんだそうですが、JeditXでそれをすると、<BR><u>$1</u><BR>になりました。 わからないと、1個1個普通に検索置換しないといけなくて大変です。どなたか教えて下さい。お願いします!

質問者が選んだベストアンサー

  • ベストアンサー
  • cockerel
  • ベストアンサー率46% (253/548)
回答No.2

環境設定の「検索」の「エスケープを表すメタ文字」が「円マーク」ではなく「バックスラッシュ」に指定されているためではないでしょうか? 検索ウインドウの正規表現の隣にある?をクリックすると、グループ化の例が表示されています(これはバックスラッシュが使用されています)。これをそのままコピーして動作を確認してみるのもよいでしょう(テスト用のテキストとして、たとえば「2006年8月10日」を使うとよいでしょう)。

greenthumb
質問者

お礼

できました!!!!!!ありがとうございます。 JeditXをダウンロードしたのがつい最近で、 設定が、Xの方はエスケープを表すメタ文字がデフォルトでバックスラッシュ、4の方は円マークになっていました。 ちなみに、検索に使う文字も違っていて、Jedit4では、{}でグループ化、Xでは、()でした。ということは、ここに書き込む前に友だちに教えてもらったPerl のやり方でうまくできたはずなんですが、、、謎です。 とにかく大助かりです。 私は技術者ではないのですが、グレップ検索って、とても便利なので、これから勉強していきたいと思います。 どうもありがとうございました。

その他の回答 (1)

回答No.1

私はまだJEditなんですが、検索文字列が <BR>.+<BR> だったところを、グループ化といって <BR>{.+}<BR> のようにします。すると置換文字列の方で{}で囲った部分を\1で表 せるようになり、 <BR><ul>\1</ul><BR> のような指定でご希望通りに置換出来るようになりますよ。

greenthumb
質問者

お礼

後から補足頂いたcockerelさんとの合わせ技で解決することができました。 どうもありがとうございました。 もう、すごい大助かりです。

greenthumb
質問者

補足

早速のご回答、ありがとうございました。 おっしゃられる通りにやってみると、 文字通り<BR><ul>\1</ul><BR>に(1の前は円マーク)全てが変換されてしまいました。 Jedit も、jeditXも同じ結果です。 grumpy_the_dwarf さんのところでは、これでできるのですか?どこか設定とか変えないといけないんでしょうか。。。。

関連するQ&A