リンクの属性を維持したまま、リンク先やリンク文字を一括更新する
リンクを作る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」に搭載されている、複数ファイルを対象に一括置換する機能と、正規表現を使って置換処理を行う機能を活用して、リンクを簡単に一括更新する方法をご紹介致しました。ぜひ、活用してみて下さい。【関連記事】
- 別ウインドウで開くリンクにアイコンを付加
- リンクの表示先ウインドウを選択可能にする
- タグを色分けできるテキストエディタを使う
- リンク文字の直後にアイコンを加える
- JavaScriptで入力文字制限!(入力チェック)