テキストのURLを自動的にリンクさせるようにしたいのですが、Dreamweaverや正規表現を使ってできるでしょうか? よろしくお願いします。


http://www.aaa/aaa.htm

<a href=”http://www.aaa/aaa.htm”>http://www.aaa/aaa.htm</a>
へ自動的に変換

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/07/02 10:11:32
  • 終了:--

回答(7件)

id:cx20 No.1

cx20回答回数607ベストアンサー獲得回数1082004/07/02 10:31:09

ポイント30pt

WZ Editor でしか試してないのですが、

こんな感じで変換することが可能です。

<検索対象>

<検索>

(http://[a-z.]+/[a-z.]+)

<置換>

<A HREF=”$1”>$1</A>

<説明>

() … 括弧で区切られた部分を記憶する。

http:// … ”http://” にマッチ。

[a-z.]+ … a〜z と ”.” の繰り返し(”+”が繰り返しを表す)にマッチ。

/ … ”/” にマッチ。

$1 … 括弧指定で記憶した情報を参照する。$1 だと 1番目。$2 だと2番目の情報を参照する。

id:koh40

こちらの聞き方が足りなかったようですが、これだと、/ が2つ以上ある場合や-(ハイフン)をフォルダ名に使っていたりするとその前までしか該当しないようです。

/ や - が複数あっても、最後の.htm まで範囲指定できるものが欲しいのです。

2004/07/02 16:38:03
id:kokogiko No.2

元ここギコ!回答回数23ベストアンサー獲得回数02004/07/02 12:15:41

ポイント40pt

参考URL先に鬼のような正規表現と解説が載ってますが、ぶっちゃけ99.99%とかの正確さでよいなら、

s?https?://[-_.!~*’()a-zA-Z0-9;/?:@&=+$,%#]+

ぐらいでマッチするみたいですね。

id:koh40

これだとhttp://www.aaa/images/logo.gif

などで終わるものもヒットしてしまうようで、htmだけで終わるものをヒットというのはどうすればいいでしょう。

2004/07/02 20:28:14
id:TakamiChie No.3

高見知英回答回数59ベストアンサー獲得回数02004/07/02 18:49:48

ポイント20pt

上記サイトにRFCに沿ったHTTPのURLをマッチさせる正規表現などがあります。

ただわたしの記憶通りだと、

(

) とか、)までマッチしてしまったと思っているので、一般向けじゃないです。

 一般配布してるCGIから抜き出した方が楽かも。

一応わたしの使ってるCGIの公開サイトもはっておきますね。

http://www.cj-c.com/

CJ-Club [www.cj-c.com]

id:koh40

リンク先みてみたのですが、チンプンカンプンでした。 自分にはハードル高そうですね、簡単なのがあるかと思ったのですが、

2004/07/03 09:25:37
id:ozonepapa No.4

ozonepapa回答回数288ベストアンサー獲得回数02004/07/02 20:42:16

ポイント20pt

vimの置換で確認しました。

:%s/http:¥/¥/..*¥/.*[  ]*$*/<a href=”&”>&<¥/a>/

[]内は、半角空白、全角空白にしています。

http://で始まり[半角空白、全角空白、改行]までを

置換対象にしています。

普通の正規表現なので、他のツールでも

http:¥/¥/..*¥/.*[  ]*$*

で検索できると思います。

置換前

gogo

gogo

gogo

gogo

置換後

gogo<a href=”

”>

</a>

gogo<a href=”

”>

</a>

gogo<a href=”

”>

gogo<a href=”

”>

id:koh40

Vim 6.3 for WindowsをインストールしてGVIMで試してみたのですが、:%s/http:¥/¥/..*¥/.*[  ]*$*/&<¥/a>/ を貼り付けても検索とかできないです。

2004/07/03 09:54:37
id:ozonepapa No.5

ozonepapa回答回数288ベストアンサー獲得回数02004/07/02 20:49:51

ポイント20pt

%s/http:¥/¥/..*¥/.*¥.html*/<a href=”&”>&<¥/a>/

http://ではじまり、htmlかhtmで終わるパターンを検索し置換するバージョンです。

置換前

hogehoge

hogehoge

置換後

hogehoge<a href=”

”>

hogehoge<a href=”

”>

id:TakamiChie No.6

高見知英回答回数59ベストアンサー獲得回数02004/07/03 10:22:21

ポイント20pt

じゃあPerl雑伎ほど精密なものはわからないので、

CJ-ClubさんのCGIから抜き出してみましょうか

s/([^=^¥”]|^)((http|ftp|https)¥:[¥w¥.¥~¥-¥/¥?¥&¥+¥=¥:¥@¥%¥;¥#¥,¥|]+)/$1<a href=$2 target=$TGT>$2<¥/a>/g;

となっています(テキストをftpで検索すれば二回目あたりで見つかるはず)

 これなら単純なので、すぐわかると思います。

HTMLのみを抜き出すのならば、

s/([^=^¥”]|^)((http|ftp|https)¥:[¥w¥.¥~¥-¥/¥?¥&¥+¥=¥:¥@¥%¥;¥#¥,¥|]+¥.html?)/$1<a href=$2>$2<¥/a>/g;

と、マッチ部に¥.html?を付け足せばいいです。(htmとhtmlにマッチ)

おそらく他の人の投稿のものにも、応用次第で付け足せると思います。

id:koh40

テキストをftpで検索すれば というのがよく分からないのですが、秀丸などでの検索・置換え機能を使わずにやるわけでしょうか?

2004/07/03 14:47:04
id:cx20 No.7

cx20回答回数607ベストアンサー獲得回数1082004/07/03 23:51:47

ポイント30pt

URL は自分の Webサイト にある WZ Editor と正規表現 に関する情報(リンク集など)です。

正規表現は環境(エディタの種類、プログラミング言語)によって

かなり「なまり(方言)」があるので、一概に「これ」というものを示すことができません。

逆に、エディタやプログラミング言語を指定して戴ければ、

的の得た回答が得られやすいのでは?と思います。

(2回までしか回答できないので、これ以上答えられないのですが・・・)

参考までに、1回目の正規表現を少し修正しました(htm/htmlと複数階層の対応)

また、はてなに投稿するときに、

一部記号(「”」や「¥」など)が全角になってしまいます。

お手数ですが、使用される場合は、これらを半角に読み替えて入力してみてください。

<検索>

(http://[a-z.-]+/[a-z./-_¥~]*.html?)

<置換>

<A HREF=”$1”>$1</A>

<変換前>

gogo

gogo

gogo

gogo

hogehoge

hogehoge

<変換後>

<a href=”

”>

<a href=”

”>

<a href=”

”>

gogo<a href=”

”>

gogo<a href=”

”>

gogo<a href=”

”>

gogo<a href=”

”>

hogehoge<a href=”

”>

hogehoge<a href=”

”>

ちなみに、Vim や Perl の場合は、

Vim … :%s/ 検索する内容 / 置換する内容 /

Perl … s/ 検索する内容 / 置換する内容 /g;

のように入力するようですね(使ったことはないですが(^^A)

id:koh40

どうも何度もありがとうございます。

(「”」や「¥」など)が全角になってしまうなど知りませんでした。 動かないはずですよね、今回の検索はうまくできそうなんですが、置換えるとそのまま$1になってしまうんですよね???

秀丸を使っています。

2004/07/04 19:53:58
  • id:koh40
    結局

    みなさん大変ありがとうございました。
    秀丸を使い¥fhttp://[a-z.-]+/[a-z./-_¥~]*.html?¥fにで
    あいまい検索チェックでやってみたのですが、これだとファイル名に‐付きは認識してくれないようで、結局下記でなんとかやれそうです。
    質問始めてだったので、うまくできませんでしたが、色々勉強になりました。 <(_ _)>
    <検索>
    ¥fs?https?://[-_.!~*’()a-zA-Z0-9;/?:@&=+$,%#]+¥f
    <置換>
    <A HREF=”¥1”>¥1</A>
  • id:koh40
    (投稿者削除)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません