タグに挟まれた間の文字を置換する方法

このQ&Aのポイント
  • テキストエディタを使用して特定のタグに挟まれた文字を置換または削除する方法について質問です。
  • 例えば、テーブルタグの<td>~</td>の間にある文字を処理したい場合にどのようにすればいいのか知りたいです。
  • 間には英数日本語などが含まれ、文字数もランダムです。お詳しい方に教えていただきたいです。
回答を見る
  • ベストアンサー

タグに挟まれた間の文字を置換する方法

色々置換方法を勉強していたのですが、特定のタグに挟まれた場合はどのようにしたらよいか分からなかったので質問させて頂きました。 使用するのはテキストエディタです。(秀丸など) 例えばよくあるテーブルタグで <th>あいうえお</th> <td>かきくけこ</td> … … … とある場合に<td>~</td>の間にある文字を置換又は削除する場合はどうしたら良いでしょうか? 例の場合ですと「あいうえお」そのままにして、「かきくけこ」部分を処理したい場合です。 この間にある文字は英数日本語などがあり、文字数もランダムです。 この間を置換または削除出来る…、といいますか<td>~</td>という間にある全てという指定方法を知りたいです。 お詳しい方宜しくお願いします。

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

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

(<th[^>]*>)(.+?)(</th>) ↓ \1Newword\3 じゃなくて (<td[^>]*>)(.+?)(</td>) ↓ \1Newword\3ですね。

apple_mango
質問者

お礼

有難う御座いました。 大変勉強になりました、正規表現をもっと勉強したいと思います。

その他の回答 (2)

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

要素内に (<th[^>]*>)(.+?)(</th>) ↓ \1Newword\3  ⇒正規表現 - Wikipedia( http://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE )  th要素には、必須のabbrやそれ以外の属性を含む可能性があるので・・。  EmEditorの場合、複数行(改行コード)を含めて検索する場合は最大行数を指定する必要がある。

  • k-josui
  • ベストアンサー率24% (3220/13025)
回答No.1

ごく単純に、タグごと検索置換えでいいです。 検索する文字列「<td>かきくけこ</td>」 置換える文字列「<td>さしすせそ</td>」

関連するQ&A

  • はさまれた間だけを置換したいのですが・・・。

    テキストエディタを使って、HTMLを置換したいです。 具体的にはテーブルタグ周りの置換なのですが、大きな表で沢山の定義が既にあります。 そこで、 <td>13.</td> <td>51.</td> <td>3.</td> といった感じで<td>数字 ドット</td>という規則性の中で、中の数字とドットはそのまま残しつつ、 <th>~</th>という具合にTHタグに置換したいのですが上手くいきません。 この様な場合、普通に正規表現だけでは無理でしょうか? 何か特別な定義を行わなければ難しいでしょうか・・・。 沢山数があるので、出来れば置換処理で対応したいのですが。 どなたか、方法をご存知の方いらっしゃいましたらアドバイス宜しくお願いします。

  • 間を残した置換方法

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

  • Excel : タグ付き正規表現による文字置換は可能?

    アクティブセルの文字を、正規表現を利用して文字置換をしたいと考えています。 ただ、単純な文字置換ではなく、正規表現にマッチした文字列を記憶して、 置換後の文字列として呼び出して利用します。 秀丸エディタにあるような「タグ付き正規表現」を利用したいです。 Excelでも同じようなことは可能なのでしょうか? 一例として挙げますと、次のような文字置換です。 ●「?」の後に全角スペース以外の文字がある場合には、「?」の後に全角スペースを1つ入れる。 ●「?」の後に全角スペースが複数続く場合には、「?」の後の全角スペースを1つだけにする。 つまり、★を全角スペースとすると、次のようになります。 あいう?あいう   → あいう?★あいう あいう?★★あいう → あいう?★あいう さらに、一例を挙げますと、 ●「AさんはBさんの友達です」というような文章を、「BさんはAさんの友達です」にする。  つまり、AとBに相当する部分を入れ替える。 よろしくお願いいたします。

  • タグ内を除く文字列置換

    ある特定文字を、HTMLの任意のタグ「<xxx>」を除いた範囲で置換をしたい場合はどのような正規表現で表すことができるでしょうか? たとえば以下のようなHTMLコードがあり、 <a href="http://google.ne.jp"><img src="./google.png"> google </a> このgoogleというテキスト部分の文字をyahooに置換したい場合は、 <a href="http://google.ne.jp"><img src="./google.png"> yahoo </a> となってほしいです。上の例に限らず、どんなHTMLにも適用できるような汎用性のある方法はないでしょうか。 自分で考えてみたのですが、タグを一旦抜き取って、代わりの記号を置き、置換後に元に戻すと言う方法くらいしか思いつきません。

    • ベストアンサー
    • Perl
  • 正規表現で全角数字を半角数字に置換する方法は?

    いつもお世話になっております。 テキスト内の全角数字5桁のみを該当の半角数字5桁に置換する方法を探しています。 OS:Win テキストエディタ:sakuraエディタ、秀丸 例) ---------------------------------------- あいうえお01234かきくけこ99さしすせそ ↓ あいうえお01234かきくけこ99さしすせそ ---------------------------------------- 正規表現で行えばいいと思い、置換文字列を  [0-9][0-9][0-9][0-9][0-9] あるいは  [0-9]{5} にしましたが、置換後の文字列が分かりません。 試しに検索で上記の文字列を試すと、該当箇所がマークされるので、 置換前の文字列は合っています。 置換後の文字列をご教授願えますでしょうか。 ※テキストエディタで無理ならプログラム組みます。 VBScriptを考えていますが、他に良い言語があれば併せて教えてください。

  • htmlタグ間の特定文字置換

    お世話になります。 特定のタグに囲まれたテキスト部分の特定文字列を置換したいと思うのですが なかなか解決策が浮かばず困っています。 例えば $str = <<< EOM <a href="watanabe/nakamura/test.html" alt="watanabesan">これがwatanabeですよ</a> <a href="watanabe/nakamura/test.html" alt="nakamurakun">これがnakamuraですよ</a> EOM; という文字列があります このaタグ間のテキスト部分の「watanabe」と「す」にだけ()を付けたい場合 どうすればいいでしょうか? 希望の結果 --- <a href="watanabe/nakamura/test.html" alt="watanabesan">これが(watanabe)で(す)よ</a> <a href="watanabe/nakamura/test.html" alt="nakamurakun">これがnakamuraで(す)よ</a> --- 単純に置換しただけではタグ内の該当文字列も置換されてしまい困っています foreach (array("watanabe","す") as $keyword){ $str = eregi_replace($keyword,'('."\\0".')',$str); } --- <a href="(watanabe)/nakamura/test.html" alt="(watanabe)san">これが(watanabe)で(す)よ</a> <a href="(watanabe)/nakamura/test.html" alt="nakamurakun">これがnakamuraで(す)よ</a> --- 正規表現を使ってタグ内の文字を抽出という方法も考え抽出は出来たのですが 置換をかけてタグ間に戻す所でつまずいてしまいました。 何か良い方法はありますでしょうか? アドバイスよろしくお願いします。

    • ベストアンサー
    • PHP
  • ある文字列を置換対象から除外する方法を教えて下さい

    秀丸エディタで文書内全置換を行う際、ある文字列を置換対象から除外する方法はあるのでしょうか? 例えば「一浪が一浪して大学に入学した。」という文章を「一浪が二浪して大学に入学した。」と書き換える際、あらかじめ名前の「一浪」部分をマスキングできて、そこは二浪に置換されないといったやり方を探しています。 ハイライト表示を使って、ハイライト表示された文字列は置換対象から除外できるようにするなんていう風にできるとありがたいのですが、どなたか良い方法をご存じではないでしょうか?

  • テキストエディタでの置換(正規表現チェック済)と同様のことを

    テキストエディタでの置換(正規表現チェック済)と同様のことを エクセルのマクロでもしたい。 画像を添付しましたが、秀丸で置換を選択し、 検索文字列と置換文字列を入れて、正規表現チェックのチェックボックスを 選択した状態で実行するのと同様のことをエクセルのマクロで行いたいです。 正規表現混みだととても難しいです。 やりたいことはマクロで、フォルダ内のテキストファイルを置換をかけていきたいです。(テキストファイルは複数ある状態)そのテキストファイルを更新できればいいです。(別テキストで出力されてもいいです。) どなたか詳しい方、教えていただけませんでしょうか? よろしくお願いいたします。 --- 検索エディタ【秀丸】【置換】 検索【.*item1=(.*) item2=(.*) .*】 置換【\1\t\2】 正規表現チェック

  • テキスト置換ソフトで、特定の文字列が●個出てくるごとに置換できるもの知りませんか?

    以下のような機能をもつ テキストファイルの置換ソフトを探しています。 特定の文字列が●個出てくるごとに、 その●個目の部分だけを置換する機能です。 たとえば、 abc abc abc abc abc abc abc abc という文字列があるとして、 手動ではなく一括で以下のように置換をしたいのです。 abc ABC abc ABC abc ABC abc ABC この例では、abcが2つ登場するごとに、ABCという文字列に置換されていますね。このように特定の文字列(この例ではabc)が●個出てくるごとに、その●個目の部分だけを置換するというような機能を持つ(できれば)フリーソフトなどをご紹介いただければありがたいです。 秀丸エディタなどのテキストエディタでは、おそらくできないと思うのですが、もしできるのであれば、そのやり方を教えていただいても構いません。 よろしくお願いいたします。

  • 文字+改行コードの置換について

    文字+改行コードの置換についてご教授ください。 テキスト内の数字「9」とそれに続く改行コードのみ置換(削除)対象にしています。 全ての改行コードが対象ではないため、下記のようにエディタ(sakuraエディタ)で指定しました。 置換前: 9\r\n ※削除したいため、置換後の欄は空欄にしています。 しかし、この設定だと置換前の文字列を置換対象として認識しません。(検索対象としても) \r\n だけだと改行コードを認識するので、文字と改行コードのセットを認識していないようです。 指定に誤りがあるのでしょうか。詳しい方ご教授お願いします。