プログラマーは、設計が完了した後も、プログラムの状況やユーザーからのフィードバックに基づいてプログラムを改善し続け、継続的に業務を改善していく必要があります。 Software Business Network http://www.bizsofts.comのフォーラムを作成し終えた後、人々は常にさまざまな役立つ URL リンクや電子メール アドレスを自分の投稿に追加することを好むことに気づきました。設計時にこれを考慮していなかったので、これらの URL リンクまたは電子メール アドレスは、ハイパーリンクではなくテキストの形式でのみ表示できます。投稿を閲覧する他の人も、これらの URL リンクをブラウザにコピーするか、電子メールをコピーする必要があります。アドレスを Outlook に入力して、対応するリンク アドレスに移動するか、対応する電子メール アドレスに電子メールを送信します。
この問題を発見した後、私はそれを解決することに着手しました。まず、この領域の現在のコードをインターネットから検索します。残念ながら、検索エンジンで繰り返し検索しても、この領域の記事は見つかりませんでした。そこで、ASP.NET を使用して自分で作成してみようかと思いました。
ハイパーリンクを自動的に表示するには、ハイパーリンクを正しく識別する方法が重要です。最も効果的な方法は正規表現を使用することであることに疑いの余地はありません。正規表現は、通常の文字 (文字 a から z など) と特殊文字 (メタキャラクターと呼ばれる) で構成されるテキスト パターンであり、文字列に一致する部分文字列を置換したり、抽出したりするために使用できます。特定の文字列から特定の条件を満たす部分文字列など。 .NET 基本クラス ライブラリには、正規表現の機能を最大限に活用できる名前空間と一連のクラスが含まれており、これを使用してテキスト内の URL リンクや電子メール アドレスを自動的に検出できます。 ASP.NET (C#) を使用して目標を達成する方法を段階的に詳しく説明します。
まず、ASP.NET (C#) で正規表現を使用する場合は、System.Text. RegularExpressions 名前空間を含める必要があります。
2 番目のステップは、正規表現を使用して URL ハイパーリンクを識別することです。
Regex
urlregex = new Regex(http://([w.]+/?)S*) "、
RegexOptions.IgnoreCase|RegexOptions.Compiled);
このコードでは、正規表現を使用して電子メール アドレスを識別します。
Regex emailregex = new Regex(@"([a-zA-Z_0-9.-]+@[a-zA-Z_0 - 9.-]+.w+)",
RegexOptions.IgnoreCase|RegexOptions.Compiled);
3 番目のステップでは、プログラムが URL ハイパーリンクまたは電子メール アドレスを識別したら、これらのハイパーリンクを <a href=...>ハイパーリンク</a> に置き換える必要があります。テキストはリンクとして表示されます。ここでは、それらをすべて関数に含めます:
private void Button1_Click(object sender, System.EventArgs e)
{
文字列 strContent = InputTextBox.Text;
正規表現 urlregex = new Regex(@"(http://([w.]+/?)S*)",
RegexOptions.IgnoreCase| RegexOptions.Compiled);
strContent = urlregex.Replace(strContent,
"<a href="" target="_blank"></a>");
正規表現 emailregex = new Regex(@"([a-zA-Z_0-9.-]+@[a-zA-Z_0-9.-]+.w+)",
RegexOptions.IgnoreCase| RegexOptions.Compiled);
strContent = emailregex.Replace(strContent, "<a href=mailto:></a>");
lbContent.Text += "<br>"+strContent;
上記
の手順により、Web ページ上にハイパーリンクとメール アドレスを自動的に表示できます。この例のソース コードをダウンロードして、 http://www.bizsofts.comのフォーラムで実際の効果を確認してください。 (著者注: この記事の英語版は CodePoject および CodeGuru で公開されています)