프로그래머로서 디자인을 완성한 후에도 프로그램의 상황과 사용자의 피드백을 바탕으로 계속해서 프로그램을 개선해야 작업이 지속적으로 개선될 수 있습니다. 소프트웨어 비즈니스 네트워크 (http://www.bizsofts.com )에 대한 포럼을 만든 후에 사람들은 항상 자신의 게시물에 다양하고 유용한 URL 링크나 이메일 주소를 추가하고 싶어한다는 것을 알게 되었습니다. 디자인할 때 이 점을 고려하지 않았기 때문에 이러한 URL 링크나 이메일 주소는 하이퍼링크가 아닌 텍스트 형식으로만 표시될 수 있습니다. 게시물을 탐색하는 다른 사람들도 이 URL 링크를 브라우저에 복사해야 합니다. Outlook에 주소를 입력하여 해당 링크 주소로 이동하거나 해당 이메일 주소로 이메일을 보낼 수 있습니다.
이 문제를 발견한 후, 나는 그것을 해결하기 시작했습니다. 첫 번째는 인터넷에서 이 영역의 현재 코드를 검색하는 것입니다. 안타깝게도 검색 엔진에서 반복적으로 검색한 결과 이 영역의 기사가 발견되지 않았습니다. 그러다가 ASP.NET을 사용하여 직접 작성하는 것이 좋겠다고 생각했습니다.
하이퍼링크를 자동으로 표시하는 핵심은 하이퍼링크를 올바르게 식별하는 방법입니다. 가장 효과적인 방법은 정규식을 사용하는 것입니다. 정규식은 일반 문자(예: 문자 a~z)와 특수 문자(메타 문자라고 함)로 구성된 텍스트 패턴으로, 문자열 일치 패턴을 설명하고 문자열에 일치하는 하위 문자열이 포함되어 있는지 확인하거나 추출하는 데 사용할 수 있습니다. 특정 문자열에서 특정 조건을 충족하는 하위 문자열 등 .NET 기본 클래스 라이브러리에는 정규식의 기능을 최대한 활용할 수 있는 네임스페이스와 일련의 클래스가 포함되어 있습니다. 이를 사용하여 텍스트에서 URL 링크나 이메일 주소를 자동으로 감지할 수 있습니다. ASP.NET(C#)을 사용하여 목표를 달성하는 방법을 단계별로 자세히 설명하겠습니다.
먼저 ASP.NET(C#)에서 정규식을 사용하려면 System.Text.RegularExpressions 네임스페이스를 포함해야 합니다.
using System.Text.RegularExpressions;
두 번째 단계는 정규식을 사용하여 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);
세 번째 단계에서는 프로그램이 URL 하이퍼링크 또는 이메일 주소를 식별한 경우 이러한 하이퍼링크를 <a href=...>하이퍼링크</a>로 바꿔야 합니다. 텍스트는 링크로 표시됩니다. 여기에 있는 함수에 모두 포함합니다.
private void Button1_Click(object sender, System.EventArgs e)
{
문자열 strContent = InputTextBox.Text;
Regex urlregex = new Regex(@"(http://([w.]+/?)S*)",
RegexOptions.IgnoreCase|RegexOptions.컴파일됨);
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.컴파일됨);
strContent = emailregex.Replace(strContent, "<a href=mailto:></a>");
lbContent.Text += "<br>"+strContent;
}
위의 단계를 통해 웹페이지에 하이퍼링크와 이메일 주소를 자동으로 표시할 수 있습니다. 이 예제의 소스 코드를 다운로드하고 http://www.bizsofts.com 포럼에서 실제 효과를 확인해 보세요. (저자 주: 이 기사의 영어 버전은 CodePoject 및 CodeGuru에 게시되었습니다.)