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 반복문을 통해 각 일치 항목이 순차적으로 콘솔에 출력되는 것을 확인할 수 있습니다.