正規表現を使って文字列をコピー

このQ&Aのポイント
  • 正規表現を使って複数の文字列を一括で書き換える方法を解説します。
  • Dreamweaverの正規表現を利用して、ファイル内の特定の文字列を一括で書き換える方法をご紹介します。
  • 正規表現を使用して、複数のファイル内の特定の文字列を一括で置換する手順をご案内します。
回答を見る
  • ベストアンサー

正規表現を使って文字列をコピー

以下のような記述があるファイルが山のようにあります。 <a href="http://xxx.jp">リンクはこちら</a> <a href="http://yyyjp">リンクはこちら</a> <a href="http://zzz.jp">リンクはこちら</a>… これをDreamweaverの正規表現を使って書き換えたいのです。↓ <a href="http://xxx.jp">http://xxx.jp</a> <a href="http://yyyjp">http://yyyjp</a> <a href="http://zzz.jp">http://zzz.jp</a>… いろいろ試しましたが正規表現はまだあまり理解できていないためどのようにしたらいいのかわかりません。 よろしくおねがいします。

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

  • ベストアンサー
  • dscripty
  • ベストアンサー率51% (166/325)
回答No.1

不明な点を列挙するよ! a 要素は href のほかに属性を持つかどうか、 持つなら、どんな属性を持つ可能性があるか、 また、どんな属性を持つときに正規表現による変換を除外するか、あるいはしないのか。 href のほかに属性を持つ場合の順番は固定かどうか、 固定でないなら、どんな属性の順番がありうるか、 また、どんな属性の順番のときに正規表現による変換を除外するか、あるいはしないのか。 .jp は固定かどうか 固定でないなら、どんな可能性があるか、 また、どんなときに正規表現による変換を除外するか、あるいはしないのか。 .jp の後ろに URL の文字列が続くことはあるかどうか あるなら、どんな URL の文字列が続く可能性があるか、 また、どんな URL 文字列が続くときに正規表現による変換を除外するか、あるいはしないのか。 「リンクはこちら」は固定かどうか、 固定でないなら、どんな可能性があるか、 また、どんなときに正規表現による変換を除外するか、あるいはしないのか。 これが答えられたら、たぶん自分で正規表現かけるんじゃない?

chikotto
質問者

補足

回答します。 サンプルそのままでaタグには絶対パスのアドレス(Targetなど属性は一切なし)です。 <a href="http://xxx.jp/あいうえお/">リンクはこちら</a> ※「"http://xxx.jp/」はどれも同じです。「あいうえお」部分のみ違います。英数字が入ります。文字数はバラバラです。最後は「/」で閉じられています。 「リンクはこちら」の文言はすべて固定です。「リンクはこちら」をaタグで指定しているURLにそれぞれ変えたいのです。 が、分からない状態です…

その他の回答 (1)

  • dscripty
  • ベストアンサー率51% (166/325)
回答No.2

Dreamweaver の正規表現の仕様が見つからないから、ちょっと怪しいけど。。。 http://www.adobe.com/jp/newsletters/edge/january2010/articles/article4/index.html 検索 <a href="http:\/\/xxx.jp\/([-\.\w]+)\/">リンクはこちら<\/a> ↑でだめなら↓ <a href="http://xxx.jp/([-\.\w]+)/">リンクはこちら</a> 検索できるようになったら、 置換 <a href="http:\/\/xxx.jp\/$1\/">http:\/\/xxx.jp\/$1\/<\/a> ↑でだめなら↓ <a href="http://xxx.jp/$1/">http://xxx.jp/$1/</a>

関連するQ&A

  • 正規表現について

    HTMLファイルを読み込み、特定の文字列にリンクを付けて出力したいのですが上手くいきません。 例: <img src="./seiki_hyougen.gif" alt="正規表現についての説明">更に正規表現を知りたい方は、<a href="special.html">正規表現の詳しい説明</a>をクリックして下さい。  ↓正規表現をキーワードにしてリンクを付けたい。 正:<img src="./seiki_hyougen.gif" alt="正規表現についての説明">更に<a href="seiki_hyougen.html">正規表現</a>を知りたい方は、<a href="special.html">正規表現の詳しい説明</a>をクリックして下さい。 誤:<img src="./seiki_hyougen.gif" alt="<a href="seiki_hyougen.html">正規表現</a>についての説明">更に<a href="seiki_hyougen.html">正規表現</a>を知りたい方は、<a href="special.html"><a href="seiki_hyougen.html">正規表現</a>の詳しい説明</a>をクリックして下さい。 尚、下記URLのサンプルを参考にしてスクリプトを作成しています。 http://php.oss.eznetsols.org/manual/ja/function.preg-split.php $r = preg_split('((\/a>)|(<a))', $html, -1, PREG_SPLIT_DELIM_CAPTURE); for ($i = 0; $i < count($r); $i++) { if ($r[$i] == "<a") { $i++; continue; } $r[$i] = preg_replace( "/(正規表現)/i", "<a href='seiki_hyougen.html'>\\1</a>", $r[$i] ); } return join("", $r); この(正規表現)の部分で上手い正規表現を使えばalt="×××"の中にリンクタグが入らないようにできるのでは?と思っているのですが・・・。 どうか、良い方法を教えて下さい。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 正規表現について

    アメブロから独自ブログへ引越しを行うことになったのですが、 ペタしてね というリンク画像を毎ページに張り付けており、この画像リンクを一括で削除したいと思っています。 HTMLタグのパラメータが微妙にばらついており、正規表現の利用が必要かなと思っています。 専用のプラグインをインストールし、正規表現を利用して削除できることが分かったのですが、 正規表現の方法を数時間勉強してみましたが、結局どうすればいいのかわかりません・・・ 削除する画像リンクは以下のようなものです。 <a href="http://.........................."><img height="100" alt="ペタしてね" src="http://stat.ameba.jp/blog/ucs/img/decoPeta/pc/decoPeta_18.gif" width="100" /></a> width や hight がページによって微妙に違うようです。 どちらさまか、上記のようなタグをマッチングさせる正規表現を教えていただけませんでしょうか。

    • ベストアンサー
    • PHP
  • 正規表現を使った文字列の切り出し

    こんにちは ver_51 と言います. 決まったパターンの文字列から正規表現を使って抽出する方法で悩んでいます. 文字列のパターンは以下の通りです. 任意の文字列は.*で表しています. String line = ".*<a href=".*" .*">抽出したい箇所1</a>.*<a href=".*" .*">抽出したい箇所2</a>.*以下同じように続く"; String tray = new tray[100]; 実現したいことは正規表現を使って抽出したい箇所がある限り,trayに順番通りにいれるというものです. この場合だと tray[0]="抽出したい箇所1"; tray[1]="抽出したい箇所2"; ・ ・ ・ と入ってほしいです. お手数ですが,どうぞ宜しくお願い致します.

    • ベストアンサー
    • Java
  • 正規表現を使って?

    置換の正規表現を使ってこのURLを (例) <A href="http://123.com/456/789/"><IMG src="http://123/456/789.jpg" border="0"></A> <A href="http://123.com/456/789/">リンク先</A> このようにしたいです。 <A href="http://tesuto=http%3A%2F%2F123.com%2F456%2F789%2F"><IMG src="http://123/456/789.jpg" border="0"></A> <A href="http://tesuto=http%3A%2F%2F123.com%2F456%2F789%2F">リンク先</A> :は%3aに /は%2fに 最後にリンク先のURLにhttp://tesuto=を追加したいです。 (<IMG src="からのURLはそのままにしたいです。) ちなみにhtml内には様々なタグが入っていてリンク先も様々なURLが書かれているとします。 (http://123.com/456/789/やhttp://123.com/456/789/abc/dehg/など) 正規表現についてはまったく分からず悩んでいます。 どなたかよろしくお願いします。

  • 正規表現で一発置換できるでしょうか?

    サイトにあるHTMLを読み込み、その中のリンク全てに target指定を追加して表示するPHPについてアドバイスをお願いします。 取込元のHTMLは↓な記述(全リンクにtarget指定は無い)  … <a href="http://bakubaku.com">ばくばく</a> …  … <a href="http://mogumogu.net">もぐもぐ</a> …  … <a href="http://karikari.org">かりかり</a> … これを、↓のように変換して出力したい  <a href="http://bakubaku.com" target="_brank">ばくばく</a>  <a href="http://mogumogu.net" target="_brank">もぐもぐ</a>  <a href="http://karikari.org" target="_brank">かりかり</a> とりあえず、  ・<a href…> のリストを preg_match_allで 抽出  ・要素数だけ 末尾の > を target="_brank"> に変換/入替 といった処理で結果は正しく出ますがパフォーマンス的に痛いですよね。 このような検索置換処理を、正規表現を使って、一発でできないものでしょうか? (すみません、、正規表現よく分かっていません、、)

    • ベストアンサー
    • PHP
  • 正規表現を使って文字列置換を行いたい

    みなさんいつもお世話になります。 とあるプログラムの置換処理を行いたいのですが、 <a href="JavaScript:prfCallList(2,'27','27125','大阪市住之江区','')"> ↑の文字列の 「2,'27','27125','大阪市住之江区',''」 の部分(つまりprfCallList関数のパラメータ) が可変な文字列をいっきに <a href="shopmapItiran2.htm"> と変えたい時ってどのような正規表現になるのでしょうか? 私は正規表現を使うと楽らしいよってのは知ってるけど使った事がない・・・というレベルです。 ネットで一応正規表現入門みたいなサイトも読んでみたのですがよくわからず(T_T) お手数をおかけしますが、よろしくお願いします。

  • 正規表現で、画像ファイルへの直リンクだけを抽出したい

    多くのファイルで構成されているhtmlのグループから、画像ファイルへの正規表現で画像ファイルへの直リンクだけを抽出したいのですが、以下のように記述したのですが、どうしても一部のhtmlファイルがヒットしてしまいます。マウスonで画像が変化するロールオーバーのリンクhtm文です。 どうすれば、確実に画像ファイルへの直リンクだけを抽出できるのでしょうか? 正規表現:<A HREF=[^>]+\.(?:jpg|gif|png)[^>]+>(.+?)</A> ヒットしてしまうhtmファイルは、最初に<a href=○○.htm とhtmファイルへのリンクが出てきて、その後にgifというロールオーバー用のファイルの拡張子が出てきてしまい、それにヒットしてしまうようなのです。 確実に最初に出てきた.gifなどの画像ファイルにヒットするようにしたいのですが、どうすればよいのでしょうか? 以下ヒットしてしまう参考ファイル <a href="./guide/guide.htm" target="_blank" onMouseOut="MM_nbGroup('out');" onMouseOver="MM_nbGroup('over','t03','f2.gif','',1);" … ><img name="t03" src="t03.gif" …></a>

  • 正規表現についての質問です。

    正規表現についての質問です。 現在、HTMLのimgタグを使って「/img/jpg/」ディレクトリにある画像ファイルを複数表示しています。 例) <img src="/img/jpg/1111.jpg" > <img src="/img/jpg/mm2222.jpg" > <img src="/img/jpg/kkkkk3333.jpg" > これをそれぞれ、以下のように置換したいと考えています。 例) <a href="http://www.xxxxx.jp/1111.jpg"><img src="/img/jpg/1111.jpg" width="240px"></a> <a href="http://www.xxxxx.jp/mm2222.jpg"><img src="/img/jpg/mm2222.jpg" width="240px"></a> <a href="http://www.xxxxx.jp/kkkkk3333.jpg"><img src="/img/jpg/kkkkk3333.jpg" width="240px"></a> imgタグをリンクタグで囲むのですが、リンク先URLには元々の画像ファイル名が使われています。また、imgタグには「width="240px"」が付加されています。 このような置換をPHP5で行うには、どのような正規表現を使用したらよろしいでしょうか。 宜しくお願い致します。

    • 締切済み
    • PHP
  • 正規表現についての質問です。

    正規表現についての質問です。 現在、HTMLのimgタグを使って「/img/jpg/」ディレクトリにある画像ファイルを複数表示しています。 例) <img src="/img/jpg/1111.jpg" > <img src="/img/jpg/mm2222.jpg" > <img src="/img/jpg/kkkkk3333.jpg" > これをそれぞれ、以下のように置換したいと考えています。 例) <a href="http://www.xxxxx.jp/1111.jpg"><img src="/img/jpg/1111.jpg" width="240px"></a> <a href="http://www.xxxxx.jp/mm2222.jpg"><img src="/img/jpg/mm2222.jpg" width="240px"></a> <a href="http://www.xxxxx.jp/kkkkk3333.jpg"><img src="/img/jpg/kkkkk3333.jpg" width="240px"></a> imgタグをリンクタグで囲むのですが、リンク先URLには元々の画像ファイル名が使われています。また、imgタグには「width="240px"」が付加されています。 このような置換をPHP5で行うには、どのような正規表現を使用したらよろしいでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 正規表現、htmlからリンクの相対パスのみ抜き出したい

    タイトルの通りhtmlから正規表現で 相対パスのリンクだけ抜き出したいです。 現在は「a href="([^/][^\"]+)」のようにやっています でもこれだと a href="http://xxx.xxx---" a href="mailto:---" a href="javascript:---" のような拾いたくないケースにもマッチしてしまいます。 途中に「:」が入るのをマッチさせなければいいんでしょうけど、 うまい表現が思いつきません。 このような条件でマッチさせる正規表現は どのようにすればいいでしょうか? よろしくお願いします。

専門家に質問してみよう