Home > Programming > [C#] テキスト内のURLにリンクをはる

[C#] テキスト内のURLにリンクをはる

using System.Text.RegularExpressions;

static string MakeUrlLink(Match m)
{
    return string.Format("<a href={0}>{0}</a>", m.ToString());
}

Regex r = new Regex("https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%# ]+");
text = r.Replace(text, MakeUrlLink);

もしかして MakeUrlLink を定義しなくても書ける…?それはおいおい勉強していくということで。

[追記 08.07.10]

思い出したのでメモ。匿名メソッドを使えばカンタン。

using ...

using System.Text.RegularExpressions;  

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        /* 省略 */

        private void button1_Click(object sender, EventArgs e)
        {
            Regex r = new Regex(
              "https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+");
            textBox1.Text = r.Replace(textBox1.Text,
                delegate (Match m) { return string.Format(
                  "<a href='{0}'>{0}</a>", m.ToString()); });
        }
    }
}

image

でも、見通しがいいかどうかは…どうだろう。最初の記述よりは、モダンで格好はいいと思うが、いまいち無名関数とやらのオイシさが理解できていなかったり。(だから忘れる。)

Home > Programming > [C#] テキスト内のURLにリンクをはる

My Friend Feed

http://friendfeed.com/daruyanagi

Google Analyticator

610
 Unique Visitors 
 (1 day) 
Powered By Google Analytics

Return to page top