Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 정규식(Regex)으로 URL 유효성 검사하는 방법

C#에서 URL이 올바른 형식인지 확인하려면 정규식(Regular Expression)을 활용할 수 있습니다. URL의 유효성을 검사하려면 크게 두 가지 요소를 점검해야 합니다.

1. 프로토콜 확인

먼저 URL이 올바른 프로토콜로 시작하는지 확인해야 합니다.

http
https

2. 도메인 확장자 확인

다음으로 .com, .in, .org 같은 도메인 확장자가 포함되어 있는지 검사합니다. 이를 위해 아래와 같은 정규식 패턴을 사용합니다.

(http|http(s)?://)?([\w-]+\.)+[\w-]+[.com|.in|.org]+(\[\?%&=]*)?

이 정규식은 다음과 같은 구조로 동작합니다.

  • (http|http(s)?://)? — http 또는 https 프로토콜 여부를 선택적으로 검사합니다.
  • ([\w-]+\.)+ — 도메인 이름과 점(.)으로 구성된 부분을 반복해서 매칭합니다.
  • [.com|.in|.org] — 허용된 최상위 도메인 확장자를 확인합니다.
  • (\[\?%&=]*)? — 쿼리 문자열 등 추가 파라미터를 선택적으로 허용합니다.

예제 코드

아래는 위 정규식을 사용하여 URL을 검증하는 전체 C# 예제입니다.

using System;
using System.Text.RegularExpressions;
namespace RegExApplication {
    class Program {
        private static void showMatch(string text, string expr) {
            Console.WriteLine("The Expression: " + expr);
            MatchCollection mc = Regex.Matches(text, expr);
            foreach (Match m in mc) {
                Console.WriteLine(m);
            }
        }
        static void Main(string[] args) {
            string str = "https://example.com";
            Console.WriteLine("Matching URL...");
            showMatch(str, @"^(http|http(s)?://)?([\w-]+\.)+[\w-]+[.com|.in|.org]+(\[\?%&=]*)?");
            Console.ReadKey();
        }
    }
}

이 코드는 Regex.Matches() 메서드를 통해 입력된 문자열에서 정규식 패턴과 일치하는 부분을 찾아 출력합니다. showMatch 메서드는 매칭 결과를 MatchCollection으로 받아 하나씩 콘솔에 표시합니다.

실행 결과

Matching URL...
The Expression: ^(http|http(s)?://)?([\w-]+\.)+[\w-]+[.com|.in|.org]+(\[\?%&=]*)?
https://example.com

실행 결과를 보면 입력된 URL https://example.com이 정규식 패턴과 일치하여 정상적으로 출력된 것을 확인할 수 있습니다. 이처럼 정규식을 활용하면 간단한 코드만으로 URL 형식의 유효성을 효율적으로 검사할 수 있습니다.