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

C# 정규식 Matches 메서드 – 패턴 일치로 값 추출하기

Matches 메서드는 정규식 패턴과 일치하는 인스턴스들을 찾아내고, 해당 패턴을 기준으로 값을 추출할 때 사용됩니다.

유효한 URL 검사하기

이번에는 입력된 문자열이 유효한 URL인지 확인하는 방법을 알아보겠습니다. 이를 위해 Regex.Matches 메서드에 정규식 표현식을 인자로 전달하면 됩니다.

MatchCollection mc = Regex.Matches(text, expr);

위 코드에서 expr은 유효한 URL 여부를 검사하기 위해 미리 정의해 둔 정규식 표현식입니다.

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

검사 대상으로 설정한 텍스트는 다음과 같은 URL입니다.

https://demo.com

그럼 전체 코드를 통해 실제 동작 과정을 확인해 보겠습니다.

예제

using System;
using System.Text.RegularExpressions;

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

출력 결과

Matching URL...
https://demo.com

실행 결과를 보면 정규식 표현식과 일치하는 URL이 MatchCollection 객체에 저장되고, foreach 반복문을 통해 각 일치 항목이 순차적으로 콘솔에 출력되는 것을 확인할 수 있습니다.