- - PR -
ASP.Netで文字列中のURLに自動でリンクを張ることはできますか??
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-04-04 15:18
正規表現で検索し、「https?://」で始まって、空白で終わっているところを、「<a href="マッチした文字列">マッチした文字列</a>」と置き換えるプログラムを
Dim re As New Regex("s?https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+", RegexOptions.IgnoreCase Or RegexOptions.Singleline) Dim m As Match = re.Match(txtBody.Text) While m.Success txtBody.Text = re.Replace(txtBody.Text, "<a href=" + m.ToString + ">" + m.ToString + "</a>") m = m.NextMatch() End While と書くことでフォーム内に http://・・・ が一つある場合には上手くできまましたが フォームに あああ http://aaa.com いいい http://bbb.com と Http://で始まるURLが複数ある場合には フォーム後に結果は あああ http://bbb.com>http://bbb.com いいい http://bbb.com>http://bbb.com と表示されうまくできません。 複数URLがフォーム内にある場合はどうしたら良いのでしょうか? どなたかご教授お願いいたします。 | ||||
|
投稿日時: 2008-04-04 15:55
その正規表現が正しいか?はともかくとして、 「空白で終わっているところを」なので、とりあえず最後に空白を入れてみてはどうでしょう? | ||||
|
投稿日時: 2008-04-04 20:51
Matchの使い方はよく知らないけど、$& で多分できる。(未検証)
スマートな文字列処理のための正規表現入門(後編) http://www.atmarkit.co.jp/fdotnet/basics/regex02/regex02_03.html |