ホームページ作成/ホームページ作成テクニック、小技

たくさんのリンクを正規表現で楽に一括更新する方法(6ページ目)

複数のHTMLファイル内にある「リンク先URL」・「リンク文字」・「属性値」などを一度に更新したい場合は、複数ファイルを対象にして一括置換できる機能や、正規表現による置換処理ができるテキストエディタを使うと、とても楽に作業できます。

西村 文宏

執筆者:西村 文宏

ホームページ作成ガイド

リンクの属性を維持したまま、リンク先やリンク文字を一括更新する

リンクを作るa要素には、target属性やclass属性など、href属性以外の属性も付加されている場合があります。それらの属性が付加されているa要素と付加されていないa要素が混在している場合でも、リンクを一括更新できます。

例えば、a要素の記述に、
<a href="/samples/abc.html" target="_blank">散古</a>
<a href="/samples/abc.html" target="_top">サンプル</a>
<a target="_top" href="/samples/abc.html">サンプル</a>
<a href="/samples/abc.html">さんぷる</a>
などのように、target属性の値や有無が混在している場合を考えます。

target属性などのすべての属性を削除して、リンクを修正したいのであれば、
◆検索語:
<a.+?href=".*?/samples/abc\.html".*?>.+?</a>
◆置換後:
<a href="/yonples/abc123.html">ヨンプル</a>
と指定すれば良いでしょう。

開始タグの要素名「a」の直後に「.+?」と記述しているのは、href属性の前に他の属性が記述されている場合に対処するためです。少なくとも1文字の空白はあるはずですから「*」記号(=0回以上出現の意味)ではなく「+」記号(=1回以上出現の意味)を使っています。開始タグの末尾「>」の直前に「.*?」と記述しているのは、href属性の後に他の属性が記述されている場合に対処するためです。

すべてのリンクにtarget属性を付加したいのであれば、
◆検索語:
<a.+?href=".*?/samples/abc\.html".*?>.+?</a>
◆置換後:
<a href="/yonples/abc123.html" target="_top">ヨンプル</a>
などのように指定すれば良いでしょう。既存の属性をすべて削除した上で、target属性が付加されます。

target属性の有無は元の状態を維持して、リンク先URLのみを修正したいなら、
◆検索語:
<a(.+?)href=".*?/samples/abc\.html"(.*?)>.+?</a>
◆置換後:
<a href="/yonples/abc123.html"\1 \2>ヨンプル</a>
と指定することで、一括更新できます。

上記の場合、target属性がhref属性の前方に書かれていても後方に書かれていても、後方に統一されて修正されます。それは、「置換後」側に記述している、正規表現の後方参照「\1」・「\2」を記述する位置で調整できます。

※ただし、この「属性値をそのまま残しておきたい場合」は、a要素全体を置換対象にするのではなく、URLだけ(またはhref属性部分だけ)を置換対象にすれば、後方参照を駆使しなくても簡単に置換処理ができます。

上記と同様の方法で、a要素に付加されたclass属性やid属性なども削除したり、値を変更したり、属性値を維持したままリンクURLだけを修正したりすることができます。

テキストエディタ上で正規表現を使って、リンクを簡単に一括更新

今回は、テキストエディタ「EmEditor」に搭載されている、複数ファイルを対象に一括置換する機能と、正規表現を使って置換処理を行う機能を活用して、リンクを簡単に一括更新する方法をご紹介致しました。ぜひ、活用してみて下さい。

【関連記事】

【編集部おすすめの購入サイト】
Amazonでホームページ作成の参考書をチェック!楽天市場でホームページ作成関連の書籍をチェック!
  • 前のページへ
  • 1
  • 4
  • 5
  • 6
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます