PC、ゲーム、デジタル機器などの初心者向けの話題や小技などをつらつらと……

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Loading...

複数あるリンクへターゲット指定を一括追加する方法

 複数持っている運営サイトのひとつでは無数にあるリンクの変更・更新を毎月の定期作業として行っているが、これまでは作成にホームページビルダーを使用しているためリンクターゲットしてもHPビルダー上からひとつずつ作業していた。

 しかし最近別途ブログへの更新作業には所々だが高性能テキストエディタの「秀丸エディタ」を使用する機会が増えていたため、ついでにこれらリンクのターゲット指定も秀丸エディタである程度自動化できないかと思案してみた。

 行いたい作業内容は、

各リンクにターゲット指定を「 target="_blank"」(targetの前は半角空白)を追加する

 というもの。要はリンクを新規ウィンドウで展開するために各リンクタグに上記ターゲットタグを埋め込んでいくのだが、リンク数がかなりあるためひとつひとつ手動で追加していくのには骨が折れる。

 よって今回考えてみたのが、秀丸エディタの「置換」機能を用いた、対象全リンク所定位置への「 target="_blank"」の一括追加の方法。

 作業自体は秀丸エディタの「置換」機能の「正規表現」を使って「 target="_blank"」を一括で追加するという単純なものだが、正規表現自体あまり使っていない機能のため追加したい場所の指定にかなり苦労したため、その手順と方法を備忘録として記録しておきたい。

 まずは対象とするリンクのHTMLタグと、追加したい「 target="_blank"」の挿入位置の基本から。

 ターゲット指定を行いたいリンクタグは無数にあるが、基本的にどれもが

<A heaf="http://www.○○○○.jp/****">

 となっており、「○○○○」は全リンクの共通部分で、最後の「****」にはランダムの英数字で構成されている(実際にはかなり長いURL)。
 追加したいターゲット指定の「 target="_blank"」はこのリンクタグの末尾部分に挿入する必要がある。

<A heaf="http://www.○○○○.jp/****" target="_blank">

 よって秀丸エディタの置換機能で「 target="_blank"」を追加しようとするならば、リンクタグ末尾の「"」あるいは「">」を検索対象として、検索対象が「"」なら「 target="_blank"」に、「">」なら「 target="_blank">」に置換することになる。

 だがここで問題になるのが検索の指定方法。単純に文字列「"」や「">」の指定ではHTML内で対象となる部分が膨大なため、対象であるリンクタグ末尾部分のみに絞り込めない。
 そのためここで秀丸エディタの「正規表現」という機能を使い、通常の文字列検索では指定できない範囲を指定する。

 ちなみに正規表現とは「ある文字列の表記を、ひとつの文字列で表現する方法」の一種であり、秀丸エディタ独自の機能ではない(秀丸エディタもこの機能を利用できるということ)。

 抽出したいのはHTML構文のうちリンクタグ「<A heaf="http://www.○○○○.jp/****">」部分のみで、この末尾に「 target="_blank"」を追加したい。よって「置換」の各項目に入力するのは、それぞれ以下の通りとなる。

正規表現での置換

検索(S):\f<A href=".+?"\f
置換(E):\1 target="_blank"

 これで「正規表現」にチェックを入れ、「全置換」を実行すれば目的のリンクタグのみが検索対象となり、タグ末尾に「 target="_blank"」が追加挿入される。

 今回使った正規表現は以下の4つ。

 ■ 「.」(ピリオド): 改行文字以外の任意の1文字を表す
 ■ 「+」(プラス記号):直前の文字列の1個以上の繰り返しを表す
 ■ 「?」(クエスチョン):直前の文字列が0または1回出現することを表す
 ■ \(エスケープコード):特殊文字の表記に仕様。他の特定文字と組み合わせて使用

 ポイントとなったのがエスケープコード「\」の使い方。今回使用した「\f」とは秀丸エディタ独自の表記で、これで囲んだ検索文字列は置換部分で「\1」と表記した箇所で取得することが可能となる。
 今回の場合検索文字列「<A href=".+?"」を「\f」で囲んだため、リンクタグの「<A heaf="http://www.○○○○.jp/****"」部分が置換部分で表記した「\1」にそのまま表示されることとなり、結果として基のリンクタグに「\1 target="_blank"」が追加された形となった。流れ的には

1.「<A heaf="http://www.○○○○.jp/****"」を「\f」~「\f」で囲み指定
2. 置換部分で「\1」を指定 → 「\f」での指定部分をそのまま取得
3.「<A heaf="http://www.○○○○.jp/****" target="_blank"」となる

 という感じ。

 ちなみに上記以外にも、秀丸エディタver.7.00以降では「タグ付き正規表現における置換機能」というものがあり、これを使用すればもう少し簡単に上記の処理を行えそうだが、この方法を実行した後で気付いてしまったので今回は割愛。

 秀丸エディタの正規表現による置換機能自体は以前から知っていたが、使用してもせいぜいHTMLの改行タグの削除程度ぐらいだったので、今回のような使い方をしたのは実は初めてだったり。
 便利そうなので使い込めば様々な作業の効率化に繋がるとは思うが、高機能すぎてどう使えばいいのか分からないという何ともトホホな現状をまずどうにかしたい……。

 取りあえず上記の方法でも当初の目的は果たせたので、これからはサイト更新をいつもよりも少しだが早くできるようになった。
 ……でも今回のこの作業の方法考えるのに使った時間の方が、いつものリンク変更・更新作業よりも遥かにかかってしまったのは如何ともしがたいが(笑)



Loading...
コメント
コメントの投稿
【Font & Icon】
管理者にだけ表示を許可する
プロフィール

雪陽炎

Author:雪陽炎
 PCやデジタル機器類いじりの他にも、あれやこれやと趣味を持つ器用貧乏な奈良県民。
 初心者向け兼自身の忘備録としてPC及びデジタル機器関連の情報をまとめてます。

参加ブログランキング

にほんブログ村 PC家電ブログ パソコン・周辺機器へ にほんブログ村 PC家電ブログ 家電・AV機器へ
にほんブログ村 PC家電ブログ PCオーディオへ
人気ブログランキングへ
人気ブログランキングへ
最新記事
スポンサ-ドリンク
最新コメント
最新トラックバック
Amazon
楽天
ブロとも申請フォーム

この人とブロともになる

関連記事Loader

[猫カフェ]futaha

スポンサードリンク
本館/別館サイト
カテゴリ
ブックマーク
最近のチェックリスト / PC関連
最近のチェックリスト / AV関連
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。