• 締切済み

間を残した置換方法

正規表現の置換方法についてアドバイス願います。 現在、以下のHTMLソースを置換したいと考えています。 <td>なんとか1</td> <td>なんとか2</td> <td>なんとか3</td> <td>なんとか4</td> <td>なんとか5</td> … これを、中の文字は残して<th>なんとか1</th>へと置換したいと考えています。 検索時には以下の内容でヒットさせることは出来たのですが、 <td>.*</td> 中身を残すという指定方法が分かりません・・・。 中身の文字列は、文字数も記載内容もばらばらの状態です。 どなたか、中身を残した指定方法をアドバイスいただけないでしょうか。 よろしくお願いします。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

O'reilly にそのまま「正規表現」って本はあるけど, 「正規表現」は使うプログラムによって違うことに注意.

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

たとえばMicrosoftのWORDを使い, Ctrl+Hで置換のダイアログを出し 置換ダイアログのオプション>を開き あいまい検索のチェックを外し ワイルドカードのチェックを入れて \<td\>(*)\</td\> を <th>\1</th> に すべて置換します。 正規表現検索が使えるその他のテキストエディタでも,だいたい同様の事はこなします。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

正確な状況は分からんけど td を th に置き換える だけで済んだりして.

oneday77
質問者

お礼

有難う御座います。 >>td を th に置き換える 今回の例のままだとそうですよね…。^^ ただ、あくまで例でしたので、実際にはタグも異なれば中身の記載も異なるのが現状でした。 ご説明不足で申し訳ありませんでした。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

<td>([^<]*)</td> → <th>\1</th> <td>(.*?)</td> → <th>\1</th> 後方参照使います。後方参照のマークはPerlの場合$1になります。 >検索時には以下の内容でヒットさせることは出来たのですが、 ><td>.*</td>  では、<td>なんとか1</td><td>なんとか2</td><td>なんとか3</td>にもマッチしてしまいます。

oneday77
質問者

お礼

有難う御座います! アドバイス頂いた方法で無事置換できました。 >>では、<td>なんとか1</td><td>なんとか2</td><td>なんとか3</td>にもマッチしてしまいます。 なるほど、おっしゃる通りでした…。 ちなみに、正規表現の置換方法などが詳しく掲載されているページまたは書籍など御座いましたら、こちらも情報いただけないでしょうか。根本となる書き方の基本など学んでみたいと思います。何度もすみません。